python列表相关操作

  • 在列表最后添加元素-append
name = ['老王','老李','老刘']


#对name这个列表 增加一个元素 老丁 记住append是吧元素添加在列表最后
name.append('老丁')
print(name)


# 运行结果
['老王', '老李', '老刘', '老丁']
  • 列表在指定位置添加元素-insert
name = ['老王','老李','老张','老丁']

# 在列表的指定位置添加元素
name.insert(2,'悟空')
print(name)

# 运行结果
['老王', '老李', '悟空', '老张', '老丁']
  • 把一个列表添加在另一个列表里-extend
name = ['李白','韩信','猴子','花木兰']
name1 = ['达摩','露娜','公孙丽','诸葛亮']

name.extend(name1)
print(name)

# 运行结果
['李白', '韩信', '猴子', '花木兰', '达摩', '露娜', '公孙丽', '诸葛亮']
  • 链接两个列表生成一个新列表
name = ['李白','韩信','猴子','花木兰']
name1 = ['达摩','露娜','公孙丽','诸葛亮']
name2 =name + name1
print(name2)

# 运行结果 (新生成的地址存着这个列表)
['李白', '韩信', '猴子', '花木兰', '达摩', '露娜', '公孙丽', '诸葛亮']
  • 固定删除列表的最后一个元素-pop
name = ['李白','韩信','猴子','花木兰']
name1 = ['达摩','露娜','公孙丽','诸葛亮']
name2 =name + name1
print(name2)

# 固定删除列表最后一位元素
name2.pop()
print(name2)

# 运行结果
['李白', '韩信', '猴子', '花木兰', '达摩', '露娜', '公孙丽', '诸葛亮']
['李白', '韩信', '猴子', '花木兰', '达摩', '露娜', '公孙丽']
  • 在列表里删除指定的字符串-remove
name = ['李白','韩信','猴子','花木兰']
name1 = ['达摩','露娜','公孙丽','诸葛亮']
name2 =name + name1
print(name2)

#删除列表里 公孙丽 这个元素
#从左往右找删除第一个
name2.remove('公孙丽')
print(name2)

# 运行结果
['李白', '韩信', '猴子', '花木兰', '达摩', '露娜', '公孙丽', '诸葛亮']
['李白', '韩信', '猴子', '花木兰', '达摩', '露娜', '诸葛亮']
  • 删除列表里指定的元素-del
name = ['李白','韩信','猴子','花木兰']
name1 = ['达摩','露娜','公孙丽','诸葛亮']
name2 =name + name1
print(name2)


#删除列表里指定的元素
del name2[3]
print(name2)

# 运行结果
['李白', '韩信', '猴子', '花木兰', '达摩', '露娜', '公孙丽', '诸葛亮']
['李白', '韩信', '猴子', '达摩', '露娜', '公孙丽', '诸葛亮']
  • 切片后的列表和字符串一样都会生成一个新对象
name = ['qwe','rty','uio','asd','fgh']

result = name[0:3]

# 打印name
print(name)

# 打印切片后的列表
print(result)

# 运行结果
['qwe', 'rty', 'uio', 'asd', 'fgh']
['qwe', 'rty', 'uio']
  • 修改列表元素的值
name = ['老王','老李','老丁']

print(name)
# 根据列表索引修改齐值

name[0] = '老赵'

print(name)

# 运行结果
['老王', '老李', '老丁']
['老赵', '老李', '老丁']
  • 查一个值是否在列表里-in-notin
name = ['老王','老丁','老赵']

# 查一个只是否在这个列表里

print('老张' in name)

print('老张' not in name)

# 运行结果
False
True
  • 名片管理系统
#1、打印功能提示
print("*"*50)
print(" 名片管理系统v8.6")
print(" 1:添加一个新名字")
print(" 2:删除一个名字")
print(" 3:修改一个名字")
print(" 4:查询一个名字")
print("*"*50)
names = ['张三','李四','王五','老刘','你七','大巴','酒桶']
print(names)
print("*"*50)
while True:
#2、获取用户的选择
    result = int(input("请输入你的选择:"))
#3、根据用户的选择,执行相应的功能
    if result == 1:
        name = input("请输入你要添加的名字:")
        num = int(input("请输入你要添加的位置:"))
        names.insert(num,name)
        print(names)
        print("*"*50)
        yes_no = input("是否继续(y/n)")
        if yes_no == 'y':
            continue
        else:
            break
    elif result == 2:
        name = input("请输入你要删除的名字:")
        names.remove(name)
        print(names)
        print("*"*50)
        yes_no = input("是否继续(y/n)")
        if yes_no == 'y':
            continue
        else:
            break
    elif result == 3:
        name = input("请输入你要改的名字:")
        num = names.index(name)
        names[num] = input("请输入你要改成后的名字:")
        print(names)
        print("*"*50)
        yes_no = input("是否继续(y/n)")
        if yes_no == 'y':
            continue
        else:
            break
    elif result == 4:
        name = input("请输入你要查询的名字:")
        if name in names:
            print("他到了。。。")
        else:
            print("没有此人。。。")
        print("*"*50)
        yes_no == input("是否继续(y/n)")
        if yes_no == 'y':
            continue
        else:
            break
    else:
        print("只能输入1-4,感谢亲的配合谢谢。。。。")
        print("*"*50)

        
# 运行结果
**************************************************
 名片管理系统v8.6
 1:添加一个新名字
 2:删除一个名字
 3:修改一个名字
 4:查询一个名字
**************************************************
['张三', '李四', '王五', '老刘', '你七', '大巴', '酒桶']
**************************************************
请输入你的选择:1
请输入你要添加的名字:李白
请输入你要添加的位置:0
['李白', '张三', '李四', '王五', '老刘', '你七', '大巴', '酒桶']
**************************************************
是否继续(y/n)y
请输入你的选择:4
请输入你要查询的名字:
  • while.for循环遍历列表
num = [11,22,33,44,55]

#   while遍历列表元素
i = 0
while i<len(num):
    print(num[i])
    i+=1

print("*"*50)


#   for遍历列表元素
for temp in num:
    print(temp)

# 运行结果
11
22
33
44
55
**************************************************
11
22
33
44
55
  • append和extend的区别
a = [11,22,33,44,55]
b = [66,77]

#   extend把列表b里的元素一个个提出来放到列表a中
#   这里已经修改了a的值 这个是没有返回值的
a.extend(b)
print(a)

a = [11,22,33,44,55]

#   append把列表b里的元素当成一个整体放到列表a中
#   这里已经修改了a的值 这个是没有返回值的
a.append(b)
print(a)

# 运行结果
[11, 22, 33, 44, 55, 66, 77]
[11, 22, 33, 44, 55, [66, 77]]
  • 列表方法append和extend注意点
a = [11,22]
b = [33]

#这个方法没有返回值
#这里直接修改了a
a.append(b)
print(a)


#这个方法有返回值
a = a.index(11)
print(a)


a = [11,22]
#这个没有返回值所以 a = None
a = a.append(b)
print(a)


a = [11,22]
#这个没有返回值所以 a = None
a = a.extend(b)
print(a)


# 运行结果
[11, 22, [33]]
0
None
None
  • 列表的排序-sort
nums = [124124,3521,124,62,3457,234,23,6357,134,436] 
nums.sort()  #列表从小到大排序
print(nums)
nums.sort(reverse=True) #列表从大到小排序
print(nums)

# 运行结果
[23, 62, 124, 134, 234, 436, 3457, 3521, 6357, 124124]
[124124, 6357, 3521, 3457, 436, 234, 134, 124, 62, 23]
  • 列表的逆序-reverse
nums = [124124,3521,124,62,3457,234,23,6357,134,436] 
#nums.sort()  
#print(nums)
nums.reverse() #逆序
print(nums)

# 运行结果
[436, 134, 6357, 23, 234, 3457, 62, 124, 3521, 124124]
  • 循环中删除元素的bug
a = [11,22,33,44,55,66]
#这个是把44漏掉了
for i in a:
    print(i)
    if i == 33:
        a.remove(i)



a = [11,22,33,44,55,66]   
#这个是只删了33 44漏掉了  因为你删除了33 44顶替了33的位置
for i in a:
    if i == 33 or i == 44:
        a.remove(i)
print(a)


#这是正确的方法
a = [11,22,33,44,55,66]
b = []
for i in a:
    if i == 33 or i == 44:
        b.append(i)

for i in b:
    a.remove(i)
print(a)

# 运行结果
11
22
33
55
66
[11, 22, 44, 55, 66]
[11, 22, 55, 66]