python输入列表方法_Python—列表操作

列表

列表的使用:

列表是可变数据类型,因此列表的方法,都是直接修改列表原始值

list = ["panda","chimpanzee","zebra","lion","cat"]

(1)通过下标访问列表中的元素,下标从0开始计数

1 >>>list[0]2 'panda'

3 >>> list[2]4 'zebra'

5 >>> list[-1] 倒着访问,下标从【-1】开始6 'cat'

7 >>> list[-5]8 'panda'

(2)切片  list = ["panda","chimpanzee","zebra","lion","cat"]

1 >>> list[1:4]2 ['chimpanzee', 'zebra', 'lion'] #顾头不顾尾3 >>> list[1:-1]4 ['chimpanzee', 'zebra', 'lion'] #顾头不顾尾,下标【1】为'chimpanzee',【-1】为从右边数第一个5 >>> list[0:3]6 ['panda', 'chimpanzee', 'zebra'] #0表示从第一个开始取7 >>> list[:3]8 ['panda', 'chimpanzee', 'zebra'] #从第一个开始取也可以为空表示9 >>> list[3:]10 ['lion', 'cat'] #从下标【3】取到最后一个,包括最后一个11 >>> list[3:-1]12 ['lion']13 >>> list[0::2]14 ['panda', 'zebra', 'cat'] #此处的2表示,每隔一个元素,取一个15 >>> list[::2]16 ['panda', 'zebra', 'cat']17 >>> list[2:2] ------ [] #此处取值为空

list[:] 对list全部切片,可以起到复制的作用,同时 list[:]也可以使用list所有的方法

(2)列表的常用操作

追加:append()加到列表最尾

1 >>>zoo2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone']3 >>> zoo.append("追加")4 >>>zoo5 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']6 >>>

View Code

插入: 想插入哪里,下标就写哪里

1 zoo2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']3 >>> zoo.insert(1,"从chimpanz前插入")4 >>>zoo5 ['panda', '从chimpanz前插入', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']6 >>> zoo.insert(4,"从lion前插入")7 >>>zoo8 ['panda', '从chimpanz前插入', 'chimpanzee', 'zebra', '从lion前插入', 'lion', 'cat', 'newone', '追加']9 >>>

View Code

修改:

1 >>>zoo2 ['panda', '从chimpanz前插入', 'chimpanzee', 'zebra', '从lion前插入', 'lion', 'cat', 'newone', '追加']3 >>> zoo[1]="换成gorilla"

4 >>>zoo5 ['panda', '换成gorilla', 'chimpanzee', 'zebra', '从lion前插入', 'lion', 'cat', 'newone', '追加']6 >>>

View Code

删除:(有三种删除方式 del ,remove【删除指定元素,如果有多个,取列表的第一个匹配项】,pop【如果不输入下标,默认删除最后一个】)

1 >>> del zoo[1]2 >>>zoo3 ['panda', 'chimpanzee', 'zebra', '从lion前插入', 'lion', 'cat', 'newone', '追加']4 >>> zoo.remove("从lion前插入")5 >>>zoo6 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']7 >>> zoo.pop() #删除列表最后一个值

8 '追加'

9 >>>zoo10 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone']11 >>>

View Code

#pop虽然是删除,不过会获取每一个被删除的元素,list2.append(list.pop()) ,从而达到list删除,list2增加的目的

扩展:

1 >>>zoo2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone']3 >>> b=[1,2,3]4 >>>zoo.extend(b)5 >>>zoo6 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', 1, 2, 3]7 >>>

View Code

统计:

1 >>>zoo2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', 1, 2, 3]3 >>> zoo.count("newone") #统计列表中有多少个【newone】

4 1

5 >>>

View Code

排序和反转: 其中排序是按照ASCII码顺序进行排序

1 >>>zoo.sort()2 Traceback (most recent call last): #python3中 int和str不能排序

3 File "", line 1, in

4 zoo.sort()5 TypeError: '

6 >>> zoo[-1]="3" #修改

7 >>> zoo[-2]="2"

8 >>> zoo[-3]="1"

9 >>>zoo10 ['cat', 'chimpanzee', 'lion', 'newone', 'panda', 'zebra', '1', '2', '3']11 >>> zoo.sort() #排序

12 >>>zoo13 ['1', '2', '3', 'cat', 'chimpanzee', 'lion', 'newone', 'panda', 'zebra']14 >>> zoo.reverse() #反转

15 >>>zoo16 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', '3', '2', '1']17 >>>

View Code

"""有一个列表[11, 2, 3, 3, 7, 9, 11, 2, 3],去重并且保持原来的顺序."""l1= [11, 2, 3, 3, 7, 9, 11, 2, 3]

ret=list(set(l1))print(ret)

ret.sort(key=l1.index) #按值在l1中的索引进行排序

print(ret)

l2=[

{"name": "alex", "age": 36},

{"name": "GoldBoss", "age": 30},

{"name": "xiaoyima", "age": 18}

]#课后作业

l2.sort(key=lambda x: x["age"])print(l2)

sort(key=lst.index)

获取下标:

1 >>>zoo2 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', '3', '2', '1']3 >>> zoo.index("panda")4 1

5 >>>

清空:

zoo.clear() #清空列表

复制:浅copy

1 >>> zoo2222 = zoo.copy() #复制

2 >>>zoo22223 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat']4 >>> zoo[0]="dog"

5 >>>zoo6 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat']7 >>>zoo22228 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat']9 >>>

10

11 此时修改了zoo的一个元素,zoo2222不会一起改12 但这只是浅copy,只复制了第一层13

14 当zoo的元素中包含了列表,修改改聊表中的值,zoo2也会一起修改15 >>>zoo16 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', ['peter', 'tony']]17 >>> zoo2 =zoo.copy()18 >>>zoo219 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', ['peter', 'tony']]20 >>> zoo[6][0]="PETER"

21 >>>zoo222 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', ['PETER', 'tony']]23 >>>

24

25 另外:26 list =list227 此时与 str =str2 不同,28 此时的list相当于只向list2的内存地址,list2修改,list也会跟着一起修改

View Code

若要进行深copy:copy模块中copy还是浅copy,deep copy才是深copy

1 1 importcopy2 2 zoo3 =copy.deepcopy(zoo)3 3 #此时修改zoo,不管zoo中是否包含列表,zoo3都不会影响。

View Code

小结,列表用到的函数有:append,insert,extend,pop,remove,clear,index,count,reverse,sort,copy

元组(tuple)

只可查列表,只能查

可用函数只有 count,index

>>> a = (1,2,3)>>> b = (5,6,7)>>> a+b

(1, 2, 3, 5, 6, 7)>>> c = (5,6,8)>>> b+c

(5, 6, 7, 5, 6, 8)>>>