列表相关方法和操作

列表: 有序的保存一组数据;列表中的元素可以是不同类型的,但是一般情况下,列表里都只保存单一类型的值

list内置类需要一个可迭代对象,可以将一个可迭代对象转换成为列表
转换字典时,只会保留字典的key

words = list({'name': 'zhangsan', 'age': 18, 'height': 180})
print(words)  #['name', 'age', 'height']

使用下标获取列表元素

namesList = ['xiaoWang','xiaoZhang','xiaoHua']
print(namesList[0])  #xiaoWang

1.增加元素:

append 会把新元素添加到列表末尾

names = ['zhangsan', 'lisi', 'wangwu']
names.append('jerry')
print(names)   #['zhangsan', 'lisi', 'wangwu', 'jerry']

insert insert(index, object) 在指定位置index(下标)前插入元素object

strs = ['a','b','m','s']
strs.insert(3,'h')
print(strs)  # ['a', 'b', 'm', 'h', 's']

extend 通过extend可以将另一个集合中的元素逐一添加到列表中
a.extend(b) ==> 把b里的所有元素都添加到a里

a = ['a','b','c']
b = ['d','e','f']
a.extend(b)
print(a)  # ['a', 'b', 'c', 'd', 'e', 'f'] 将 b 添加到 a 里
print(b) # ['d','e','f'] b的内容不变

列表之间可以使用加法运算符,将两个列表合并成为一个列表。

fruits = ['apple', 'banana', 'pear']
foods = ['rice', 'noddle']
x = fruits + foods  
print(x)  #['apple', 'banana', 'pear', 'rice', 'noddle']

2.删除元素:

clear 清空列表里的所有元素

a = [1, 2, 3, 4, 5]
a.clear()            
print(a) #[]
a = []    #重新赋值,也可以实现清空的效果

pop 删除指定位置上(根据下标)的元素;如果不传参数,默认是最后一个;pop方法有返回值,返回值是被删除的元素

fruits = ['apple', 'banana', 'pear']
y = fruits.pop(1)  
print(y)   #banana
print(fruits) #['apple', 'pear']

remove 需要参数(只能一个),根据元素的值进行删除

fruits = ['apple', 'banana', 'pear']
fruits.remove('apple')
print(fruits) #['banana', 'pear']

del 根据下标进行删除,也可以直接删除变量

fruits = ['apple', 'banana', 'pear']
del fruits[0]
print(fruits) #['banana', 'pear']
del fruits  # 删除变量

3.修改数据:

列表可以通过下标来获取和修改元素。

fruits = ['apple', 'banana', 'pear']
print(fruits[0])  #apple
fruits[0] = 'hhh'
print(fruits)   #['hhh', 'banana', 'pear']

4.查询数据:

index 用来查找元素所在的位置(下标),如果未找到则会报错

fruits = ['apple', 'banana', 'pear']
print(fruits.index('apple')) #0
print(fruits.index('ha')) #报错ValueError

count 查询元素出现次数

fruits = ['apple', 'banana', 'pear']
print(fruits .count('pear')) #1

in和not in in(存在),如果存在那么结果为true,否则为false;not in(不存在),如果不存在那么结果为true,否则false

#待查找的列表
nameList = ['xiaoWang','xiaoZhang','xiaoHua']
#获取用户要查找的名字
findName = input('请输入要查找的姓名:')
#查找是否存在
if findName in nameList:
    print('在列表中找到了相同的名字')
else:
    print('没有找到')

5.排序
sort 是将list按特定顺序重新排列,
参数key:类型是一个函数,表示的是以哪种方式进行排序
参数reverse:表示是升序或者降序排序(默认值是False,表示升序排列)

a = [1, 4, 2, 3]
a.sort()  # 默认从小到大排序
print(a)  #[1, 2, 3, 4]

b = [1, 4, 2, 3]
b.sort(reverse=True)  # 从大到小排序
print(b)  #[4, 3, 2, 1]

reverse 是将list逆置

b = [1, 4, 2, 3]
b.reverse()
print(b) #[3, 2, 4, 1]

6.手动实现冒泡排序:

while循环实现:

nums = [6, 5, 3, 1, 8, 7, 2, 4]
j = 0
while j < len(nums) - 1:  # 外循环用来控制趟数
    i = 0
    flag = True  # 假设每一次都没有交换数据
    # 内循环用来控制每一趟比较的次数
    while i < len(nums) - 1 - j:  # 每趟多比较的次数正好就是j的值
        if nums[i] > nums[i + 1]:
            nums[i + 1], nums[i] = nums[i], nums[i + 1]
            flag = False  # 说明数据交换了,假设不成立
        i += 1
    j += 1
    if flag:  # 如果这一趟走完了,flag依然是True,就说明没有数据交换,停止循环
        break
print(nums)

for循环实现:

nums = [6, 5, 3, 1, 8, 7, 2, 4]
for j in range(0, len(nums) - 1):
    for i in range(0, len(nums) - 1 - j):
        if nums[i] > nums[i + 1]:
            nums[i + 1], nums[i] = nums[i], nums[i + 1]
print(nums)

7.列表嵌套:

class1 = ['zhangsan', 'lisi', 'wangwu']
class2 = ['jerry', 'henry', 'merry']
class3 = ['tony', 'jack', 'rose']
#names是一个列表,列表里的每一个元素又是列表
names = [class1, class2, class3]
print(names[1][2])  #merry

#一个学校有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
rooms = [[], [], []]
teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
for teacher in teachers:
    i = random.randint(0, 2)
    rooms[i].append(teacher)
print(rooms)
for i, room in enumerate(rooms):  # 带下标的遍历列表
    print("办公室%d有%d人,分别是:" % (i, len(room)), end='')
    for teacher in room:
        print(teacher, end=' ')
    print()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值