列表是有顺序的.内存上是一个链表, 列表的元素可以被修改.
元祖和列表类似,元祖也是有序的, 它是列表的二次加工.
1. 元素不可被修改
2. 不能被增加或删除
li = [11, 22, 33] # 列表, 对应类list tu = (11, 22, 33) # 元祖, 类tuple tu = (11, "哈哈", (44, 55), [11], 22, 33, )# 一般写元祖的时候,一般在最后都是加一个逗号.(加不加都没有问题) # 1.取值 print(tu[0]) # 索引取 print(tu[2:4]) # ((44, 55), [11]) 切片取 # del tu[0] # 不能被删除 # 2.循环 for item in tu: print(item) # 因此,元素也是一个可迭代对象. # 3.字符串list uple都是可迭代对象,是否可以互相转换? yes s = "student" print(tuple(s)) # ('s', 't', 'u', 'd', 'e', 'n', 't') li = [11, 22, 33] print(tuple(li)) # (11, 22, 33) print(list(tu)) # [11, '哈哈', (44, 55), [11], 22, 33] # 转换成str li = ["11", "22", "33"] # 注意,join只能用于字符串 print("_".join(li)) # 11_22_33 tu = ("11", "22", "33") print("_".join(tu)) # 11_22_33 # 扩展 li.extend("哈哈") # 字符串 li.extend((55, 66, )) # 元祖 li.extend([77, 88]) # 列表 print(li) # ['11', '22', '33', '哈', '哈', 55, 66, 77, 88] # 虽然不可以对元祖进行修改,但可以对其元素的列表进行修改 tu = (11, 22, (33, 44), [(55, 66)], 88, 99) print(tu[3][0][1]) # 66 tu[3][0] = 0 print(tu) # (11, 22, (33, 44), [0], 88, 99) # count 和 index tu.count(11) # 获取指定元素在元祖中出现的次数 tu.index(11) # 获取指定元素的索引
int str list tuple bool,怎么使用?比如,有一个数据结构需要存储某个班的所有学生的名字,应该是用哪个数据类型?
list,list在增加学生的时候直接append;且list属于可修改的数据类型.
删除学生的时候直接remove;
修改学生姓名的时候,根据索引值进行修改;
而字符串属于不可修改的数据类型,tuple也属于不可修改的数据类型,因此选择list;
在需要的功能有removeappend但是不希望对该数据进行修改的情况下,可以选择使用tuple类型;