day6 列表基本操作

1.列表(list)

列表是python内置的可变并且有序的容器类数据类型(序列)
有序:可以通过下标获取元素
可变:指的是列表中元素的个数,元素的值以及元素的位置可变(支持增删改查)
列表的字面量:中括号括起来,里面有多个元素,元素之间用 , 隔开
[元素1,元素2....元素n]
元素:元素里面的内容可以是任何类型的数据。同一个列表,不同元素的类型可以不一样.
列表举例:

list1 = [10,20]
print(list1)
list2 = [10,20,"lorry",True,[1,2]]
list3 = []
print(list2,list3)
class_one =[["lorry",100],['lorrybz',10]]
print(class_one[0])

2.列表增删改查

2.1.查,获取列表的元素

  • a.获取单个元素
    列表[下标] - 获取指定下标的对应的元素,
    列表一旦确定,列表中的每个元素都对应一个下标
    下标的范围【0-列表长度-1】 or 【-1 - -列表长度】
    下标不能越界
films =["欧美","日韩","国产","偷拍"]
print(films[1])
  • b.获取多个元素(切片)
    结果还是一个列表
    列表[开始下标:结束下标:步长]
    列表[开始下标:结束下标]
films =["欧美","日韩","国产","偷拍"]
print(films[0:3])
  • c.遍历列表(将列表中元素一个一个的取出来)
    for 变量 in 列表 用变量获取列表中的元素。
方法一:直接获取列表中元素
names = ["小明","小花","小红","黄梅梅"]
for item in names:
    print(item)
方法二:通过遍历下标获取获取列表中元素
for index in range(len(names)):
    print(names[index])

2.1.增,获取列表的元素(a.append())

films =["欧美","日韩","国产","偷拍"]
films.append("人妻")
print(films)

练习:#录入学生成绩,保存到一个列表中。(录入的时候不断的输入学生的成绩,知道输入end位置。)

scores =[]
flag = True
while flag:
    score = input("请输入成绩(结束输入end):")
    if score != "end":
        scores.append(int(score))
    else:
        flag = False
print(scores)

2.2增,a.insert(下标,元素)

在制定 的下标前插入指定的元素。

films = ['欧美', '日韩', '国产', '偷拍', '人妻']
films.insert(2,"萝莉")
films.insert(0,"少妇")
print(films)

练习:有一个有序的数列【1,7,34,67,100】, 输入任意一个数列,插入后的数列还是从小到大的排序。

list1 = [1,7,34,67,100]
list2 = []
list3 = []
while True:
    a = input("请输入数字(end结束):")
    if a.isdigit():
     list1.append(int(a))
    elif a == "end":
        break
    else:
        print("重新输入(end结束):")
print(list1)
list1.insert(-1,20)
a = len(list1)
for i in range(a):
    aa = min(list1)
    list3.append(aa)
    list1.remove(aa)
print(list3)
nums = [1,7,34,67,100]
value = int(input("请输入一个数字"))
for index in range(len(nums)):
    if nums[index] >= value:
        nums.insert(index,value)
        break
else:  #如果没有找到一个比输入大的元素。
    nums.append(value)
print(nums)

2.3.删除列表的元素

  • a.del列表[] 删除列表中指定下标对应的元素
    del 关键字,可以删除列表任何元素
films = ['欧美', '日韩', '国产', '偷拍', '人妻']
del films[-1]
print(films)
  • b.remove(元素) 删除列表中指定的元素
    如果指定的元素在;列表中有多个,只是删除列表中前面的一个
films = ['欧美','人妻','日韩','国产','偷拍','人妻']
films.remove("人妻")
print(films)
  • c.列表.pop(元素) 去除列表最后一个元素
    列表.pop(下标) - 去除列表中指定下标对应的元素
films = ['欧美', '日韩', '国产', '偷拍', '人妻']
a = films.pop()
b = films.pop(0)
print(films);print(a);print(b)

例子:有一个列表,列表中有数字和字符串两种类型的元素。要求将列表中的字符串全部放到另外一个列表中。

list1 = [1,"ab",303,"hello",89,9,90]
str1 = []
num = []
for item in  list1:
    if isinstance(item,str):
        str1.append(item)
    else:
        num.append(item)
print(str1)
print(num)
list1 = [1,"ab",303,"hello",89,9,90]
list2 = []
index = 0
while 0 <= index <len(list1):
    if isinstance(list1[index],str): #取出
        item = list1.pop(index)
        list2.append(item)
        continue
    index +=1
print(list1)
print(list2)

2.4.改(修改列表元素的值)

列表[下标] = 新值 -将列表中指定下标对应的元素改成指定的值。

films = ['欧美', '日韩', '国产', '偷拍', '人妻']
films[-1] = "萝莉"
print(films)

3.列表运算

  • 1.+ 列表[]+列表[] 使用两个列表中原始,产生一个新的列表
list1 = [1,2,3]
list2 = ["lorry"]
print(list1+list2)
      • 列表[]*n(正整数) 使用两个列表中原始,产生一个新的列表.
list1 = [1,2,3]
list2 = ["lorry"]
print(list1*3);print(list2*3);print((list1+list2)*3)
    1. in ,not in
      元素 in 列表 判断指定的元素是否在列表中
      元素 not in 列表 判断指定的元素是否不在列表中
names = ["小明","lorry","lorrbz","路飞"]
if "lorry" in names:
    print("nice,喜提500万")
else:
    print("滚蛋")
    1. len(列表) 获取列表长度的个数
names = [["小明","小花"],"lorry",{"a":12,"n":50},lambda x:x*2]
print(len(names))
  • 5.list(数据) 将其他数据转换成列表
    注意:数据只能是序列,转换的方式是将序列中元素作为列表的元素
str1 = "hello"
print(list(str1))
print(list(range(10,20)))
  • 6.max(列表) - 获取列表中元素的最大值
    min(列表) - 获取列表中元素的最小值
    注意:列表要求:
    a.列表中元素类型都一样
    b。元素对应的类型,支持比较大小,支持比较运算符
print(max([1,45,6,89,20]))
print(min([1,45,6,89,20]))
print(min(["患者","aaa","lalal","一","\u95fd"]))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容