python第3课:List列表、Tuple元组

list列表

  • 一组由有序数据组成的序列
    • 数据有先后顺序
    • 数据可以是一类数据
  • list创建
    • 中括号创建,内容直接用英文逗号隔开
    • 使用list创建
    • 列表包含单个字符串的时候是一个特例
# 列表的创建,直接创建,可以是不同类型数据
L1 =[1,2,3,4]
L2 = [1,2,"absd"]
print(L1)
print(L2)
[1, 2, 3, 4]
[1, 2, 'absd']
# 创建列表的第二种方式
L3 = list()
print(L3)
print(type(L3))
[]
<class 'list'>
# 特例演示
s = "Li Ming te"
L1 = list(s)  # 自动拆分
L2 = [s]  # 注意使用这种方法

print(L1)
print(L2)
['L', 'i', ' ', 'M', 'i', 'n', 'g', ' ', 't', 'e']
['Li Ming te']

列表的常见操作

  • 访问
    • 使用下标操作,也叫索引
    • 列表元素索引是从0开始的
  • 切片操作
    • 对列表进行任意一段的截取
    • 截取之后,创建一个新的列表
    • 左闭右开区间
  • 通过内置函数ID来判断两个变量是否是一个变量
L = ["a","b","c","d","e","f","g"]
print(L[2:4])
['c', 'd']
L1 =[1,2,3,4,5,6,7,8,9]
L2 = L1[:]  # 指L1中所有
print(L2)
print(id(L1))
print(id(L2))
# 可以看见id值是不一样的
[1, 2, 3, 4, 5, 6, 7, 8, 9]
2374607412616
2374609148360
# 分片可以控制增长幅度,默认增长幅度为1
print(L1[::1])
print(L1[::2])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 3, 5, 7, 9]
# 下标值增长幅度可以为负数
# 下表为负数,表示顺序是从右往左
# 规定数组最后一个下标为-1
print(L1[-5:-2])  # 左闭右开区间
# 默认从左往右
[5, 6, 7]
# 利用步长参数从右往左打印
print(L1[-2:-5:-1])
[8, 7, 6]

tuple元组

  • 可以理解成一个不允许更改的列表
# tuple的创建

# 1.直接用小括号
ta = ()
print(type(ta))
# 当使用小括号创建一个元素的tuple时
tb = (100)
print(type(tb))
tc = (100,)  #当元组中只有一个元素时,加一个逗号表示他是一个元组
print(type(tc))
<class 'tuple'>
<class 'int'>
<class 'tuple'>
# tuple的创建

# 2.直接用逗号
ta = 100,
print(type(ta))
tb = 1,2,3,4,5
print(tb)
<class 'tuple'>
(1, 2, 3, 4, 5)
# tuple的创建

# 3.使用tuple定义
ta = tuple()
print(type(ta))

# 列表转元组
li = [1,2,3,4]
tb = tuple(li)
print(tb,type(tb))
print(li)
<class 'tuple'>
(1, 2, 3, 4) <class 'tuple'>
[1, 2, 3, 4]

元组和列表的区别

  • 元组可以访问不可以修改
  • 元素可以是任意类型
# tuple索引
la = ["li","ming","te"]
print(la)
ta = tuple(la)
print(ta[2],type(ta[2]))   # 元组中下标为2的元素类型是str
['li', 'ming', 'te']
te <class 'str'>
# tuple的分片操作
print(ta[:])
print(ta[:2])
print(ta[-1::-1])   # 表示从下标为-1的地方(最后)以步长为-1(逆序)输出
('li', 'ming', 'te')
('li', 'ming')
('te', 'ming', 'li')
# 元组的相加
ta = 1,2,3,4
tb = ('li', 'ming', 'te')
tc = ta + tb
print(tc)
(1, 2, 3, 4, 'li', 'ming', 'te')
# tuple的乘法
tc = tb*2
print(tc)
('li', 'ming', 'te', 'li', 'ming', 'te')
# tuple成员检测
print(tb)
if "123" not in tb:
    print("对的")

if "li" in tb:
    print("对的")
('li', 'ming', 'te')
对的
对的
# 元组的遍历
tb = ('li', 'ming', 'te')
for i in tb:
    print(i)
print("—————分割线—————")

ta = (
    (1,2,3),
    (4,5,6),
    (7,8,9)
)
print(ta)

for tups in ta:
    print(tups,end="中包含: ")
    for j in tups:
        print(j,end=",")
    print()   # 换行
    
print("—————分割线—————")
# 使用单层循环遍历
# 元组中的元组长度必须相同才可以使用此方法
for a,b,c in ta:
    print(f"内部元组中第1个元素为:{a}")
    print(f"内部元组中第2个元素为:{b}")
    print(f"内部元组中第3个元素为:{c}")
    print(a,b,c)
li
ming
te
—————分割线—————
((1, 2, 3), (4, 5, 6), (7, 8, 9))
(1, 2, 3)中包含: 1,2,3,
(4, 5, 6)中包含: 4,5,6,
(7, 8, 9)中包含: 7,8,9,
—————分割线—————
内部元组中第1个元素为:1
内部元组中第2个元素为:2
内部元组中第3个元素为:3
1 2 3
内部元组中第1个元素为:4
内部元组中第2个元素为:5
内部元组中第3个元素为:6
4 5 6
内部元组中第1个元素为:7
内部元组中第2个元素为:8
内部元组中第3个元素为:9
7 8 9
# 常用元组函数
# len:长度
ta = (
    (1,2,3),
    (4,5,6),
    (7,8,9)
)
tb = (4,5,6,7,8)
print("ta长{}".format(len(ta)))

# 返回数组中最大/最小值
print(max(tb))
print(min(tb))
ta长3
8
4
# count:对某一元素计数
tc = (1,1,2,3,4,5,6,1,1,1)
print(tc.count(1))

# index:返回元素的位置
print(tc.index(4))    # 从0开始
5
4
# python中交换两个元素的方法
a = 100
b = 200
a, b = b, a
print(f"a = {a}")
print(f"b = {b}")
a = 200
b = 100
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页