python基础笔记1:数据类型List

数据类型List

name4 = 2333
name = ['name1', 'name2', f'name3', 2333-333, name4]

print(name)              #    ['name1', 'name2', 'name3', 2000, 2333]       可以看出单引号是String的默认字面量
print(type(name))        #    <class 'list'>
print(name[3])           #    2000               List用法与C语言数组类似
print(name[-1])          #    2333               负数索引

# 遍历列表方式1:
for na in name:
    print(na)            #每个元素换行输出
# 遍历列表方式2:
for i in range(len(name)):
    print(name[i])
   
name.pop()         # 删除末尾
name.pop(i)        # 删除下标i元素
name.append("A")   # 末尾加元素
name.insert(1,"B") # 指定位置加元素

列表操作符:

print([1, 2] + [3, 4])    #  [1, 2, 3, 4]
print([1, 2] * 3)         #  [1, 2, 1, 2]
print(3 in [1, 2, 3])     #  True
print(type(2 not in [1, 2, 3]))    # <class 'bool'>

列表的函数与方法:

len(list)    # 长度,元素个数
max(list)    # 最大元素(list需要同类型)
list(sep)    # 元组转化为列表

list.count(obj)  # 元素出现次数
list.extend(seq) # 将seq序列加到list尾部
list.index(obj)  # 查找元素第一次出现位置
list.remove(obj) # 移除第一个匹配元素
list.sort()      # 排序
list.reverse()   # 翻转

# 排序元素也可以是list,比第一个元素:
name = [ [1,2333], [5,1,"2"], [3,4] ]
name.sort()
# [[1, 23333], [3, 4], [5, 1, '2']]

切片:

a = [1, 2, 3, 4, 5, 6, 7]
b = a[i:j:k]

# a中下标从i到j的切片,每次增加k位

c = a[::-1]
# k可以是负数,即倒序枚举,效果与reverse同

列表推导式:

# 可以遍历的内容:iterable(可迭代对象)  包括:字符串(str)、列表(list),元组(tuple)、字典(dict)、集合(set),生成器(generator)

a = [1, 2]
b = [i**2 for i in a]
s = f"ab{a}cd"
z = [i for i in s]
print(b)   # [1, 4]
print(z)   # ['a', 'b', '[', '1', ',', ' ', '2', ']', 'c', 'd']         十分无脑的字符串组成

n = 10
fa = [x for x in range(n)]   # 并查集初始化fa数组
for i in range(n):
    print(fa[i])

# 下面两个二重循环表示方式等价
a = [(x, y) for x in range(1,4) for y in range(1,3)]
print(a)

a.clear()

for x in range(1,4):
    for y in range(1,3):
        a.append((x,y))
print(a)                      # [(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)]

列表推导式记录字典元素,单循环枚举多变量:

d = {'x': 1, 'y': 2, 'z': 4}
print(d)                         # {'x': 1, 'y': 2, 'z': 4}
print(d.items())                 # dict_items([('x', 1), ('y', 2), ('z', 4)])

d_list1 = [k for k in d]
d_list2 = [k for k in d.items()]
d_list3 = [k+"="+str(v) for k,v in d.items()]
print(d_list1)                   # ['x', 'y', 'z']
print(d_list2)					 # [('x', 1), ('y', 2), ('z', 4)]
print(d_list3)					 # ['x=1', 'y=2', 'z=4']

含if的列表推导式:

if_list = [x**2 for x in range(10)  if x&1]
print(if_list)        # [1, 9, 25, 49, 81]

             # 三目运算:
print([(x**2 if x%2==0 else x+2) for x in range(10)])
# [0, 3, 4, 5, 16, 7, 36, 9, 64, 11]

选取离散元素:

a = [1, 2, 3, 4, 5, 6]
print([a[i] for i in [0,1,3]])   # [1, 2, 4]
posted @ 2023-08-28 17:43  maple276  阅读(12)  评论(0编辑  收藏  举报