列表
1.Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,列表中可以存放我们已经学习过的任何数据类型。
2 .list1[0] 和 list1[0:1] 是不一样的,list1[0] 返回第0个元素的值,list1[0:1] 返回一个只含有第0个元素的列表。
列:
>>> list1= [1,3,4,5,6,3]
>>> list1[0]
1
>>> list1[0:1]
[1]
3.在Python中输入list1[-3:-1] 是不会报错的,输入后会显示 [5, 6],因为Python 的列表很聪明,可以支持负数索引,如图:
list2 = list1[:]和 list2 = list1是不一样的。
>>> list1 = [1, 3, 2, 9, 7, 8]
>>> list2 = list1[:]
>>> list2
[1, 3, 2, 9, 7, 8]
>>> list3 = list1
>>> list3
[1, 3, 2, 9, 7, 8]
表面看起来一样,其实内心是不一样的哦,接着看
>>> list1.sort()
>>> list1
[1, 2, 3, 7, 8, 9]
>>> list2
[1, 3, 2, 9, 7, 8]
>>> list3
[1, 2, 3, 7, 8, 9]
list3是随着list1改变而改变的,墙头草一样,但是list2就不一样了,内心坚定,不忘初心(list2列表一般用来作list1的副本修改),下图可作解释(图片来源网上)。
4.copy() 方法跟使用切片拷贝是一样的。
clear() 方法用于清空列表的元素,但要注意,清空完后列表仍然还在哦,只是变成一个空列表。
5.列表推导式
列表推导式(List comprehensions)也叫列表解析,灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:
[有关A的表达式 for A in B]
例子:>>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
就可以解释为
list1 = []
for x in range(10):
for y in range(10):
if x%2 == 0:
if y%2 != 0:
list1.append((x, y))
===================================================
思考题:
>>> list1=['1.双双','2.小红','3.帅波']
>>> list2=['3.爸爸','2.闺女','1.幺妹']
>>> list3=[name + ':' + chenghui[2:] for name in list1 for chenghui in list2 if name[0] == chenghui[0]]
>>> for each in list3:
print(each)
1.双双:幺妹
2.小红:闺女
3.帅波:爸爸
上面的name[0] == chenghui[0]表示,list1和list2中索引为0的值相同时,
字符串:
字符串不能修改字符序列,除了不能修改之外,还可以把字符串当成列表一样处理。
访问字符串种某个字符同访问元组和列表的元素是一样的
列表:
列表的特点就是:可重复,类型可不同。类型不同也是跟数组最本质的区别了。python里的列表用“[]”表示。列表是可变对象,它支持在原处修改的操作.也可以通过指定的索引和分片获取元素。
区别于元组,可动态增加,删除,更新。
元组:
元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组(1,2,3)表示,元组最重要的是“,”,如果没有“,”就是一串字符串,括号可以不用,但是一般会带上,方便识别。
元组一旦定义其长度和内容都是固定的。
一旦创建元组,则这个元组就不能被修改,即不能对元组进行更新、增加、删除操作。