admin 管理员组文章数量: 887006
day6 列表和元组
day6 列表和元组
1.列表相关操作
1.数学运算:+,*
1)列表1 + 列表2 - 将两个列表合并成一个新的列表
list1 = [1, 2, 3]
list2 = [100, 200]
print(list1 + list2) # [1, 2, 3, 100, 200]
2)列表N / N列表 - 列表中的元素重复N次产生一个新的列表(N是>=0的整数)
list3 = list1 * 3
print(list3)
2.比较运算符
1)比较是否相等:==, !=
print([1, 2, 3] == [1, 2, 3]) # True
print([1, 2, 3] == [1, 3, 2]) # False
补充:is的用法
数据1 is 数据2 - 判断两个数据是否相等(判断数据的地址)
数据1 == 数据2 - 判断两个数据是否相等(判断数据的值)
注意:如果给不同的变量赋相同的可变值,地址不一样;赋相同不可变的值地址相同
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1
print(list1 == list2) # True
print(list1 is list2) # False
print(list1 is list3) # True
字典可变
a = {'name': 100}
b = {'name': 100}
print({'name': 100})
2.列表相关方法
1.列表.clear() - 清空列表(删除列表中所有的元素)
nums = [10, 2, 100]
nums.clear()
print(nums) # []
不推荐使用以下方法(浪费cpu资源)
nums = [10, 2, 100]
nums = []
print(nums)
2.列表.copy() - 复制原列表产生一个相同的新列表(数据相同,地址不同);浅拷贝
nums = [1, 2, 'abc']
new_nums = nums.copy()
print(new_nums) # [1, 2, 'abc']
print(nums is new_nums) # False
id(变量)- 获取变量中保存的地址(获取变量中保存的数据的地址)
print(id(nums), id(new_nums))
直接赋值和拷贝
list1 = [1, 2, 3]
list2 = list1 # 直接赋值
print(list2) # [1, 2, 3]
list3 = list1.copy() # 拷贝 list1[:]、list1*1、 list1+[]
print(list3) # [1, 2, 3]list1.append(100)
print(list2) # [1, 2, 3, 100]
print(list3) # [1, 2, 3]
3.列表.count(元素) - 统计指定元素在列表中的个数
scores = [90, 89, 89, 70, 100, 100, 23, 100, 89, 89]
print(scores.count(100))
练习:获取列表中元素出现最多的次数
max_count = 0
for x in scores:count = scores.count(x)if count > max_count:max_count = count
print(max_count)
4.列表.extend(序列)- 将序列中所有的元素都添加到列表中
nums = [1, 2]
nums.extend('abc')
print(nums) # [1, 2, 'a', 'b', 'c']nums.extend([10, 20, 30])
print(nums) # [1, 2, 'a', 'b', 'c', 10, 20, 30]nums = [1, 2]
nums.append('abc')
print(nums) # [1, 2, 'abc']nums.append([10, 20, 30])
print(nums) # [1, 2, 'abc', [10, 20, 30]]
5.列表.index(元素) - 获取指定元素在列表中下标(0~长度-1)
如果元素有多个,只返回第一个的下标
如果元素不存在,会报错
song = ['晴天', '大不了重头再来', '只因你太美', '成都', '晴天', '阳光总在风雨后']
print(song.index('只因你太美')) # 2
print(song.index('晴天')) # 0
# print(song.index('偏爱')) # ValueError: '偏爱' is not in list
6.列表.reverse() - 将列表倒序
song = ['晴天', '大不了重头再来', '只因你太美', '成都', '晴天', '阳光总在风雨后']
song.reverse()
print(song)
7.列表.sort
列表.sort()- 将列表中的元素从小到大排序(不会产生新的列表,直接修改原列表中元素的顺序
列表.sort(reverse=True) - 将列表中的元素从大到小排序(不会产生新的列表,直接修改原列表中元素的顺序)
nums = [23, 99, 3, 56, 7, 23, 45]
nums.sort()
print(nums) # [3, 7, 23, 23, 45, 56, 99]nums = [23, 99, 3, 56, 7, 23, 45]
nums.sort(reverse=True)
print(nums) # [99, 56, 45, 23, 23, 7, 3]nums = [10, 20, 30, 10, 20, 40]
print(len(nums)) # 6
print(nums.count(20)) # 2
print(nums.index(30)) # 2
3.列表推导式
1.什么是列表推导式 - 用来快速产生一个列表的表达式
1)基本语法:
[表达式 for 变量 in 序列]
产生元素的原理:让变量去序列取值,一个一个的取每取一个值就将表达式的结果作为列表的一个元素
a = []
for 变量 in 序列:
a.append(表达式)
返回a
list1 = ['马琦添' for x in range(4)] # ['马琦添', '马琦添', '马琦添', '马琦添']
list2 = [x for x in range(4)] # [0, 1, 2, 3]
list3 = [x**2 for x in range(4)] # [0, 1, 4, 9]
2)带条件语句的推导式
语法:
[表达式 for 变量 in 序列 if 条件语句]
相当于:
a = []
for 变量 in 序列:
if 条件语句:
a.append(表达式)
返回a
ist5 = [x for x in range(10, 20) if x % 3 == 0] # [12, 15, 18]
list6 = [x for x in range(10, 20) if x % 2] # [11, 13, 17, 19]
3)双重循环或者多循环
[表达式 for 变量1 in 序列1 for 变量2 in 序列2]
相当于:
a = []
for 变量1 in 序列1:
for 变量2 in 序列2:
a.append(表达式)
返回a
result = [x+y for x in range(3) for y in range(10, 13)]
print(result) # [10, 11, 12, 11, 12, 13, 12, 13, 14]
4.元组
1.什么叫元组(tuple)
元组是容器型数据类型;将()作为容器的标志,多个元素用逗号隔开;(元素1,元素2,元素3,…)
元组元素的要求和列表一样
不可变(不支持增删改);有序的(支持下标操作)
x = (1, 2, 3, 4)
print(type(x))
2.列表中适用于元组的操作
1)列表的查操作元组都支持
2)列表的相关操作全部适用于元组(数字运算、比较运算、in和not in、相关函数)
3.元组特有的内容
1)单个元素的元组
list1 = [10]tuple1 = (10)
print(type(tuple1), tuple1)tuple2 = (10,)
print(type(tuple2), tuple2)
2)元组的括号在没有歧义的情况下可以省略
t3 = 10, 23, 89
print(type(t3), t3)
3)用多个变量分别获取元组中元素的值(也是用于列表)
t4 = (18, 'yt', '女')
a.通过下标获取元素
print(t4[1]) # yt
b.让变量的个数和元组中元素的个数保持一致
x,y,z = t4
print(x,y,z) # 18 yt 女
c.让变量的个数小于组中元素的个数,但是必须有一个变量带
t5 = (10, 20, 30, 40)
x, y, *z = t5
print(x, y, z) # 10 20 [30, 40]
本文标签: day6 列表和元组
版权声明:本文标题:day6 列表和元组 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732352575h1533502.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论