#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/17 0:05
# @Author : mixiu26
# 一: 列表:
name = [] #1.定义列表
name = ["yiyi","erer","xiaoxiao","huahua"] # 向列表中添加元素 ['yiyi', 'erer', 'xiaoxiao', 'huahua']
print(name)
# 取出列表元素 yiyi:
print(name[0]) # 取出列表元素: 列表名[元素索引值] --- >> yiyi
# 取出xiaoxiao:
print(name[2]) # xiaoxiao
# 取出erer,小小:
print(name[1],name[2]) #erer xiaoxiao
# 列表切片: --- >> 从列表中切下部分数据
print(name[1:3]) # ['erer', 'xiaoxiao'] //以小列表的格式取出元素,包括左边不包括右边
# 切下第一个元素:
print(name[0]) # yiyi
# 切下最后一个元素:
print(name[3]) # huahua
# 当列表长度不可知,我们想要取出最后一个元素时要怎么办呢? 可以逆向取值: 从右向左数 (从右向左数,-n到-1) 0-,-n <---- (-1)
print(name[-1]) # huahua
# 取最后两个值: 注意取出最后两个元素, 因为最后一个是-1,所以即是逆向取值,更小的哪个就要在左边,因为从右往左,最大不能超过-1
print(name[-3:-1]) # ['erer', 'xiaoxiao'] # ---- >>> 包左不包右的规则通用
# 那么想取出-1的这个元素怎么办呢?
print(name[-1]) # ----- >> huahua 两种方式都表示取出最后一个元素
print(name[-1:]) # ----- >> ['huahua'] ---- >> 这就表示从-1开始往后取, -1就处在左边,包左不包右的原理, -1右边啥也不写,就能取到-1的值
# 取出0-3 的元素:
print(name[0:3]) # ['yiyi', 'erer', 'xiaoxiao']
print(name[:3]) # ['yiyi', 'erer', 'xiaoxiao'] ---- >>二者结果是一样的,0开头可以省略不用写
# 列表追加元素:
name.append("jojo"); # append --- >> 追加,尾随, 在末尾添加, 用法跟java一样. sb.append().append()......
print(name) # ['yiyi', 'erer', 'xiaoxiao', 'huahua', 'jojo']
# insert ----- >> 指定位置插入元素:
name.insert(2,"xingxing") # 表示我在第二个位置,插入xingxing这个小伙伴: 那么原来2号索引以后位置的元素索引就要自动往后加1
print(name) # ['yiyi', 'erer', 'xingxing', 'xiaoxiao', 'huahua', 'jojo'] ----- >> 索引2变成xingxxing
# 切片修改元素: --- >>直接赋值修改
name[2] = "paofu"
print(name) # ['yiyi', 'erer', 'paofu', 'xiaoxiao', 'huahua', 'jojo']
# 切片: 移除单个元素:
name.remove("erer")
print(name) # ['yiyi', 'paofu', 'xiaoxiao', 'huahua', 'jojo']
# python 自带删除方法:直接del 列表名[索引值]
del name[1] # ['yiyi', 'xiaoxiao', 'huahua', 'jojo']
print(name)
name.append("bajie")
name.insert(2,"wukong")
print(name) # ['yiyi', 'xiaoxiao', 'wukong', 'huahua', 'jojo', 'bajie']
# pop() 删除: 不带索引值删除: 默认删除最后一个元素,带索引值删除, 就等价与remove(index) 删除指定元素
name.pop()
print(name) # ['yiyi', 'xiaoxiao', 'wukong', 'huahua', 'jojo']
name.pop(2)
print(name) # ['yiyi', 'xiaoxiao', 'huahua', 'jojo']
# 查找并返回指定元素所在列表的索引
index = name.index("xiaoxiao")
print(index) # 1
# 查找指定索引位置的元素:
element = name[name.index("xiaoxiao")]
print(element) # xiaoxiao
# 统计元素个数:
# name.append("jojo")
# name.append("jojo")
# 因为列表中可有重名元素,所以统计列表中元素jojo的出现的次数:
print(name.count("jojo")) # ----- >> 3
# 删除列表所有元素
# name.clear()
print(name) # [] # ['yiyi', 'xiaoxiao', 'huahua', 'jojo']
# 列表元素反转:
name.reverse()
print(name) # ['jojo', 'huahua', 'xiaoxiao', 'yiyi']
# 列表元素排序: sort 排序规则: 特殊字符 --- >> 数字 --- >> 大写字符 --- >> 小写字符 ask码表排序
name.append("*&*@^%$Uuyt")
name.append("567$Uuyt")
name.append("WQEuyt")
name.append("aauyt")
print(name) # 排序前: ['jojo', 'huahua', 'xiaoxiao', 'yiyi', '*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt']
name.sort()
print(name) # 排序后: ['*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt', 'huahua', 'jojo', 'xiaoxiao', 'yiyi']
# extend 相当于添加另一各个列表所有元素的功能: 相当于java中 arrayList.addarrayList2 ---- > 将集合2中所有元素添加到集合1中,但集合2不会受到任何影响
name2 = ["ai","qing","gu","shi"]
name.extend(name2)
print(name) # ['*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt', 'huahua', 'jojo', 'xiaoxiao', 'yiyi', 'ai', 'qing', 'gu', 'shi']
print(name2) # ['ai', 'qing', 'gu', 'shi']
# 删除列表:
del name2
print(name) # ['*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt', 'huahua', 'jojo', 'xiaoxiao', 'yiyi', 'ai', 'qing', 'gu', 'shi']
print(name2) # 空, 没有这个变量啦~