首页 > 编程语言 >python基础——列表 元组

python基础——列表 元组

时间:2022-08-24 17:44:34浏览次数:52  
标签:python li li1 print 列表 数据 id 元组

列表和元组

列表的作用是一次性存储多个数据,可以对这些数据进行的操作有:增,删,改,查

列表格式

[数据1,数据2,数据3,....]

创建方式

# 创建空列表
li1 = []
# 创建空列表
li2 = list()
# 创建非空列表
li3 = [1,2,3,4]
print(li1)
print(li2)
print(li3)

操作

先创建一个列表

li = [1,2,'a','b','c']

li = [1,2,'a','b','c']
li1 = ['q','w','e','r']

# 1添加单个数据
li.append('nihao')
print(li)   # [1, 2, 'a', 'b', 'c', 'nihao']

# 2添加整个序列数据,作为一个整体
li.append(li1)
print(li)   # [1, 2, 'a', 'b', 'c', 'nihao', ['q', 'w', 'e', 'r']]

# 3添加整个序列数据,拆开逐个添加进去
li.extend(li1)
print(li)   # [1, 2, 'a', 'b', 'c', 'nihao', ['q', 'w', 'e', 'r'], 'q', 'w', 'e', 'r']

# 4指定位置添加数据
li.insert(0,'添加到开头0号位置')
print(li)   
# ['添加到开头0号位置', 1, 2, 'a', 'b', 'c', 'nihao', ['q', 'w', 'e', 'r'], 'q', 'w', 'e', 'r']

li = [1,2,'a','b','c']
li1 = ['q','w','e','r']

# 1删除整个列表
del li1
# print(li1)	# 因为li1不存在而报错
# name 'li1' is not defined. Did you mean: 'li'?

# 2删除单个数据
del li[0]
print(li)   # [2, 'a', 'b', 'c']

# 3删除指定数据,还可以把删除的数据,赋给一个变量
a = li.pop(3)
print(li)   # [2, 'a', 'b']
print(a)    # c
b = li.pop()   # 默认最后一个
print(li)   # [2, 'a']
print(b)    # b

# 4删除第一个匹配项
# 先插入两个相同数据
li.insert(1,'ii')
li.insert(1,'ii')
print(li)   # [2, 'ii', 'ii', 'a']
# 删去数据
li.remove('ii') # 不存在就会报错
print(li)   # [2, 'ii', 'a']

li = [1,2,'a','b','c']
li1 = ['q','w','e','r']

# 1修改指定下标数据
li[0] = 0
print(li)   # [0, 2, 'a', 'b', 'c']

# 2改变列表顺序,反转
li.reverse()
print(li)   # ['c', 'b', 'a', 2, 0]

# 3排序
# li中既有数字又有字母不能比较,所以选择只含字母的 li1 测试
li1.sort(key=None, reverse=True) # key 以后说,reverse True表示降序,默认是升序
print(li1)   # ['w', 'r', 'q', 'e'] 字母的比较应该是按照ASCII码比较的

# 4复制
# 直接等于
li2 = li
# 使用copy函数方法
li3 = li.copy()
# 对比列表的数据发现一样
print(li)   # ['c', 'b', 'a', 2, 0]
print(li2)  # ['c', 'b', 'a', 2, 0]
print(li3)  # ['c', 'b', 'a', 2, 0]
# 对比id说明不一样,id是每个数据的编号,好像和内存地址差不多
print(id(li))   # 2409533138752
print(id(li2))  # 2409533138752
print(id(li3))  # 2409533111680
# 改变列表li的数据,看看其他两个的影响
# 结果发现,copy产生的列表不会随着原来列表的变化而变化
li.pop()    
print(li)   # ['c', 'b', 'a', 2]
print(li2)  # ['c', 'b', 'a', 2]
print(li3)  # ['c', 'b', 'a', 2, 0]
# 再看看id,id不会因为列表数据变化而变化,
# id不变,但是数据变化的变量叫可变数据类型
print(id(li))    # 2409533138752
print(id(li2))   # 2409533138752
print(id(li3))   # 2409533111680

li = [1,2,'a','b','c']
li1 = ['q','w','e','r']

# 1  index  查找指定数据下标  列表序列.index(数据,开始位置下标,结束位置下标)
# print(li.index(1,1,4))  # 没有就会报错,函数不稳定,不建议用
print(li.index(1))  # 0

# 2  count  统计指定数据出现次数
print(li.count(3))   # 0 不存在也不会报错,可以在查找数据下标前判断有没有

# 3  len 得到列表的数据(元素)个数
print(len(li))  # 5
print(len(li1))  # 4

# 4 判断是否存在
print(1 in li )  # True
print(1 in li1 )  # False
print(1 not in li )  # False
print(1 not in li1 )  # True


列表 遍历 循环

li = [1,2,'a','b','c']
li1 = ['q','w','e','r']

# 1.while
i = 0
while i<len(li):
    print(li[i])
    i +=1

# 2.for
for i in li:
    print(i)

总结

对于列表字符串之类的,还是for循环好用

元组格式

(1,2,3) # 小括号包裹住,英文逗号分割
(11,)	#就算只有一个元素也要有个逗号,没有逗号相当于没加括号

元组创建

tup1 = tuple()	#()
tup2 = ()		#()
tup3 = (1,)		#(1,)

元组操作

  • 和列表一样,但是元组是不可变数据类型
  • 只有查找操作,所以列表的增删改操作都没有
  • 非要改元组的数据也行,里边嵌入列表就好,只要不怕哪天出错就用

标签:python,li,li1,print,列表,数据,id,元组
From: https://www.cnblogs.com/fhy-blog/p/16621018.html

相关文章