Python学习记录——십 列表

目录

1、格式

2、常用操作

1、查找

2、增加

3、删除

4、修改

5、复制

6、循环

7、嵌套

3、应用——随机分配


1、格式

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

2、常用操作

1、查找

下标,list[0]这种

函数

index(),如果找不到,会报错

count()

这两个同字符串中的功能作用一样

len()访问列表长度,即列表中数据的个数

list = ['sda', 'sdg', 'tyh', 'gra00']
print(len(list))

4

判断是否存在

in:判断指定数据在某个列表序列,如果在返回True, 否则返回False

not in:判断指定数据不在某个列表序列,如果在返回True, 否则返回False

list = ['sda', 'sdg', 'tyh', 'gra00']
print('uthu' in list)
print('thu' not in list)

False
True

2、增加

增加指定数据到列表中

append()

列表结尾追加数据

序列.append(数据)

list = ['sda', 'sdg', 'tyh', 'gra00']
list.append('xiaoming')
print(list)

['sda', 'sdg', 'tyh', 'gra00', 'xiaoming']

所以列表的数据的可变类型,这与字符串不同。

list = ['sda', 'sdg', 'tyh', 'gra00']
list.append([123,453])
print(list)

['sda', 'sdg', 'tyh', 'gra00', [123, 453]]

追加列表也行

extend()

列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表

序列.extend(数据)

list = ['sda', 'sdg', 'tyh', 'gra00']
list.extend([123,453])
print(list)

['sda', 'sdg', 'tyh', 'gra00', 123, 453]这是追加列表的情况

list = ['sda', 'sdg', 'tyh', 'gra00']
list.extend('trfsds')
print(list)

['sda', 'sdg', 'tyh', 'gra00', 't', 'r', 'f', 's', 'd', 's']追加字符串则是这个状况
 

insert()

指定位置新增数据

序列.insert(位置下标, 数据)

list = ['sda', 'sdg', 'tyh', 'gra00']
list.insert(2, 'trfsds')
print(list)

['sda', 'sdg', 'trfsds', 'tyh', 'gra00']

3、删除

del

list1 = ['sda', 'sdg', 'tyh', 'gra00']
del list1
del (list1)
print(list1)

都是报错。两种书写形式。还可以删除指定的部分数据

pop()

删除指定下标的数据(默认为最后一个),并返回该数据。可指定,不指定时默认删除最后一个。pop函数有返回值,返回这个被删除的数据。用一个变量来接收它。

list1 = ['sda', 'sdg', 'tyh', 'gra00']
my_list = list1.pop()
print(my_list)
print(list1)

gra00
['sda', 'sdg', 'tyh']

remove()

移除列表中某个数据的第一个匹配项

list1 = ['sda', 'sdg', 'tyh', 'gra00']
list1.remove('sda')

print(list1)

['sdg', 'tyh', 'gra00']

remove的括号里不可省略,否则报错

clear()

清空列表

list1 = ['sda', 'sdg', 'tyh', 'gra00']
list1.clear()

print(list1)

[]

只剩下括号

4、修改

reverse()

list1 = ['sda', 'sdg', 'tyh', 'gra00']
list1.reverse()
print(list1)

['gra00', 'tyh', 'sdg', 'sda']

sort()

做排序时用,升序和降序

语法:序列.sort(key=None, reverse=False)

reverse表示排序规则,reverse = True降序,= False升序(默认)。key需要用到字典,暂且不写它。

list1 = [1, 2, 3, 4, 5, 6, 7]
list1.sort(reverse=True)
print(list1)

[7, 6, 5, 4, 3, 2, 1]

5、复制

copy()

list1 = [1, 2, 3, 4, 5, 6, 7]
list2 = list1.copy()
print(list2)

[1, 2, 3, 4, 5, 6, 7]

 

6、循环

while

list1 = [1, 2, 3, 4, 5, 6, 7]

i = 0
while i < len(list1):
    print(list1[i])
    i += 1

1
2
3
4
5
6
7
 

for

list1 = [1, 2, 3, 4, 5, 6, 7]
for i in list1:
    print(i)

1
2
3
4
5
6
7

循环删除时,有一个问题,如果要删除的两个元素挨在一起,那么删除后第二个要删的就不会被删除。因为删除时,相当于有个指针指向要删除的位置,当这个元素被删除后,下一个元素就会往前走,指针指向这个过来的元素,然后循环一下,指针往后走,就指向了下一个元素,所以连续的两个元素就不会被全部删除。应对方法就是拷贝到一个新列表中,遍历新列表,找到要删除的元素,然后去原列表中删除,这样就好了,新列表不做删除动作。

7、嵌套

列表嵌套就是一个列表包含若干个子列表

mylist = [[1, 2, 3], ['a', 'b', 'c'], [9000, 8100, 870]]
print(mylist[0])
print(mylist[0][1])
print(mylist[0][1][0])

[1, 2, 3]
2
Traceback (most recent call last):
  File "E:\codes\first.py", line 4, in <module>
    print(mylist[0][1][0])
TypeError: 'int' object is not subscriptable

【0】取到第一个子列表,然后【1】去子列表第二个数据,第二个数据是一个数字,不是列表,所以[0]错误。如果想改变列表中某一个子列表的字符的大小写,不能直接list.upper(),得写成list = list.upper()。

3、应用——随机分配

8个老师分配到3个办公室

import random
teachers = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
offices = [[], [], []]
for name in teachers:
    num = random.randint(0, 2)
    offices[num].append(name)
i = 1
for office in offices:
    print(f'办公室{i}的人数是{len(office)}, 老师分别是:')
    for name in office:
        print(name)
    i += 1

办公室1的人数是4, 老师分别是:
a
b
e
h
办公室2的人数是1, 老师分别是:
d
办公室3的人数是3, 老师分别是:
c
f
g

结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值