为方便大家阅读,给大家先整理下本文写作思路: 1、本文先从序列讲起,包括序列的定义、使用和操作,便于对列表和元组的无缝引入; 2、详细说明列表的定义、基本使用方法、一些特殊操作,帮助大快速了解列表的使用; 3、通过详细的实例阐述元组的基本使用,各种常用方法的操作,通俗易懂,让大家花最少的时间了解python元组的特性。
name = ["zhangsan", "lisi", "wangwu"]
print(name[0]) # 输出:zhangsan
print(name[2]) # 输出:wangwu
print(name[-1]) # 输出:wangwu
start:切片开始位置,默认为0 end:切片截止位置,默认为序列的长度 step:切片步长,默认为1
name = ["火影", "鸣人", "佐助", "小樱"]
num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(name[0:2]) # 输出:['火影', '鸣人']
print(name[0:2:1]) # 输出:['火影', '鸣人']
print(num[0:9:2]) # 输出:[1, 3, 5, 7, 9]
print(name[:]) # 输出:['火影', '鸣人', '佐助', '小樱']
print(name) # 输出:['火影', '鸣人', '佐助', '小樱']
num_str = ["1", "2", "3", "4", "5"]
num = [1, 2, 3, 4, 5]
name_str = ["路飞", "索洛", "乔巴", "山治", "娜美"]
num_new = num + num_str
print(num_new) # 输出:[1, 2, 3, 4, 5, '1', '2', '3', '4', '5']
name_str_new = name_str + num_str
print(name_str_new) # 输出:['路飞', '索洛', '乔巴', '山治', '娜美', '1', '2', '3', '4', '5']
num_str = ["1", "2", "3", "4", "5"]
num = (1, 2, 3, 4, 5)
num_new = num + num_str
print(num_new) # 输出:TypeError
结果:
Traceback (most recent call last): File "F:/python_study/main.py", line 6, in <module> num_new = num + num_str TypeError: can only concatenate tuple (not "list") to tuple
mi = ["我是米粉", "我是忠实的米粉"]
mi_new = mi * 3
print(mi_new) # 输出:['我是米粉', '我是忠实的米粉', '我是米粉', '我是忠实的米粉', '我是米粉', '我是忠实的米粉']
mi = [None] * 3
print(mi) # 输出: [None, None, None]
phone = ["mate9", "mate10", "mate20", "mate30", "mate40"]
print("mate40" in phone) # 输出:True
print("mate40pro" in phone) # 输出:False
phone = ["mate9", "mate10", "mate20", "mate30", "mate40"]
print("p40pro" not in phone) # 输出:True
print("p40pro" in phone) # 输出:False
num = [10, 20, 30, 40, 50, 60]
print(max(num)) # 输出:60
print(min(num)) # 输出:10
print(len(num)) # 输出:6
函数 | 功能 |
---|---|
len() | 计算序列的长度,即返回序列中包含多少个元素。 |
max() | 找出序列中的最大元素。注意,对序列使用 sum() 函数时,做加和操作的必须都是数字,不能是字符或字符串,否则该函数将抛出异常,因为解释器无法判定是要做连接操作(+ 运算符可以连接两个序列),还是做加和操作。 |
min() | 找出序列中的最小元素。 |
list() | 将序列转换为列表。 |
str() | 将序列转换为字符串。 |
sum() | 计算元素和。 |
sorted() | 对元素进行排序。 |
reversed() | 反向序列中的元素。 |
enumerate() | 将序列组合为一个索引序列,多用在 for 循环中。 |
num = [20, 60, 40, 30, 50, 10]
num_new = sorted(num)
print(sum(num)) # 输出:210
print(num) # 输出:[20, 60, 40, 30, 50, 10]
print(sorted(num)) # 输出:[10, 20, 30, 40, 50, 60]
语法:name_list = 元素1, 元素2, 元素3......
name_list = ["ABC", "DEF", "GHI", "JKL"]
print(name_list) # 输出:['ABC', 'DEF', 'GHI', 'JKL']
语法:em_name_list = [];
语法:list(data);
new_list = list(range(1, 10))
print(new_list) # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
语法:del name_list
new_list = list(range(1, 10))
print(new_list) # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
del new_list
print(new_list) # 输出:NameError: name 'new_list' is not defined
new_list = ["小学生", "初中生", "高中生", "大学生"]
print(new_list) # 输出:['小学生', '初中生', '高中生', '大学生']
print(new_list[3]) # 输出:大学生
print(new_list[0]) # 输出:小学生
new_list = ["小学生", "初中生", "高中生", "大学生"]
for student in new_list:
print(student)
结果:
小学生 初中生
高中生
大学生
new_list = ["小学生", "初中生", "高中生", "大学生"]
for index, item in enumerate(new_list):
print(index, item)
结果:
0 小学生 1 初中生 2 高中生 3 大学生
① name_list.append(元素) :在列表末尾追加;
my_list = ["小学生", "初中生", "高中生", "大学生"]
my_list.append("研究生")
print(my_list) # 输出:['小学生', '初中生', '高中生', '大学生', '研究生']
②name_list.extend(new_name_list):将new_name_list中的元素全部添加到name_list中;
name_list = ["小学生", "初中生", "高中生", "大学生"]
new_name_list = ["小学", "中学", "高中", "大学"]
print(name_list) # 输出:['小学生', '初中生', '高中生', '大学生']
name_list.extend(new_name_list)
print(name_list) # 输出:['小学生', '初中生', '高中生', '大学生', '小学', '中学', '高中', '大学']
num = [1, 2, 3, 4, 5]
print(num) # 输出:[1, 2, 3, 4, 5]
num[0] = 11
num[4] = 55
print(num) # 输出:[11, 2, 3, 4, 55]
num = [1, 2, 3, 4, 5]
print(num) # 输出:[1, 2, 3, 4, 5]
del num[0]
print(num) # 输出:[2, 3, 4, 5]
②根据元素值删除,使用remove:
num = [1, 2, 3, 4, 5]
print(num) # 输出:[1, 2, 3, 4, 5]
num.remove(1)
print(num) # 输出:[2, 3, 4, 5]
# -*- coding:utf-8 -*-
# 使用count()方法获取指定元素出现的次数
num = [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(num.count(1)) # 输出:3
# 使用index()方法获取指定元素首次出现的下标
print(num.index(3)) # 输出:2
# 使用sum()计算数值列表元素的和
print(sum(num)) # 输出:18
①语法:name_list.sort(key=None, reverse=False); ②说明:key提取一个用于比较的键,reverse为True表示降序,为False表示升序。
num = [1, 2, 3, 1, 2, 3, 1, 2, 3]
print("原序列:", num) # 输出:原序列: [1, 2, 3, 1, 2, 3, 1, 2, 3]
num.sort(reverse=False)
print("升序排列:", num) # 输出:升序排列: [1, 1, 1, 2, 2, 2, 3, 3, 3]
num.sort(reverse=True)
print("降序排列:", num) # 输出:降序排列: [3, 3, 3, 2, 2, 2, 1, 1, 1]
①语法:sorted(list_name, key=None, reverse=False); ②说明:listname是列表名称,key为指定的规则,reverse为True表示降序,为False表示升序。
# -*- coding:utf-8 -*-
num = [1, 2, 3, 1, 2, 3, 1, 2, 3]
print("原序列:", num) # 输出:原序列: [1, 2, 3, 1, 2, 3, 1, 2, 3]
new_num = sorted(num, reverse=False)
print("升序排列:", new_num) # 输出:升序排列: [1, 1, 1, 2, 2, 2, 3, 3, 3]
new_num_l = sorted(num, reverse=True)
print("降序排列:", new_num_l) # 输出:降序排列: [3, 3, 3, 2, 2, 2, 1, 1, 1]
# -*- coding:utf-8 -*-
import random
# 生成指定范围的数值列表
num = [random.randint(10, 50) for i in range(20)]
print("1、随机取10到50中20个数字放到num列表中:", num) # 输出:1、随机取10到50中20个数字放到num列表中: [21, 43, 48, 40, 14, 34, 35, 28, 45, 11, 33, 33, 19, 26, 18, 23, 17, 37, 39, 27]
# 生成指定需求的列表
mm = 1
num_list = [mm+i for i in range(10)]
print("2、给变量mm每次加i,循环10次:", num_list) # 输出:2、给变量mm每次加i,循环10次: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 列表中选择符合条件的元素组成新的列表
zz = [20, 30, 40, 50, 60, 70, 80, 90, 100]
new_zz = [j for j in zz if j > 60]
print("3、原序列:", zz) # 输出:3、原序列: [20, 30, 40, 50, 60, 70, 80, 90, 100]
print("4、取大于60后新的序列:", new_zz) # 输出:4、取大于60后新的序列: [70, 80, 90, 100]
# -*- coding:utf-8 -*-
# 创建空元组
name = ()
print("这是空元组:", name) # 输出:这是空元组: ()
# 直接使用赋值运算符创建元组
name_new = ("laoli", "xiaozhang", "laowang")
print("创建元组:", name_new) # 输出:创建元组: ('laoli', 'xiaozhang', 'laowang')
# 创建数值元组
num = tuple(range(1, 10, 2))
print("创建数值元组:", num) # 输出:创建数值元组: (1, 3, 5, 7, 9)
# 删除元组
del num
print("删除num元组:", num) # 输出:NameError: name 'num' is not defined
# -*- coding:utf-8 -*-
num = (1, 2, 3, 4, 5, 6, 7, 8)
print(num[0], num[7]) # 输出:1 8
print(num[-1:]) # 输出:(8,)
# -*- coding:utf-8 -*-
num = (1, 2, 3, 4, 5, 6, 7, 8)
num1 = (9, 10)
num2 = num + num1
print(num2) # 输出:(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
①都属于序列; ②都可以按照特定顺序存放一组元素; ③类型不受限制。
①列表属于可变序列,元素可以修改和删除;元组属于不可变序列,元素不可以修改,但可以替换; ②列表可以使用append()、extend()、insert()、remove()、pop()等方法,但是元组不能; ③列表可以使用切片,元组不行; ④元组比列表的访问和处理速度要快; ⑤列表不能作为字典的键值,但元组可以。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。