python
主页 > 脚本 > python >

Python的列表详细介绍

2022-03-21 | 秩名 | 点击:

列表更多的方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

def generateRandomList(a, b, n, random_state):

    from random import randint, seed

    seed(random_state)

    ls = []

    for i in range(n):

        ls.append(randint(a, b))

    return ls

ls = generateRandomList(0, 100, 10, 666)

print(ls)  # [58, 48, 55, 36, 64, 1, 70, 70, 99, 91]

# index():返回指定数据所在位置的下标 (注意:如果查找的数据不存在则报错。)。

print(ls.index(55)) # 2

print(ls.index(70)) # 6

print(ls.index(70, 7, 9)) # 7

# print(ls.index(101)) ValueError: 101 is not in list

# - count():统计指定数据在当前列表中出现的次数。

print(ls.count(70)) # 2

print(ls.count(58)) # 1

print(ls.count(666)) # 0

# - len():访问列表?度,即列表中数据的个数。 len还可以使用在字符串/元组/字典等数据中

print(len(ls))

# 使用len进行列表遍历

for i in range(len(ls)):

    print(ls[i])

for x in ls:

    print(x)

# 自己实现index方法

def my_index(ls, val):

    for i in range(len(ls)):

        if ls[i] == val:

            return i

    return -1

print("myindex = ", my_index(ls, 70))

print("myindex = ", my_index(ls, 101))

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

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

print(69 in ls)

print(70 in ls)

print(70 not in ls)

print(69 not in ls)

 

#- append():列表结尾追加数据。

#- extend():列表结尾追加数据,如果数据是?个序列,则将这个序列的数据逐?添加到列表。

# insert():指定位置新增数据。

hero_ls = []

hero_ls.append("鲁班七号")

hero_ls.append("妲己")

hero_ls.append(123)

print(hero_ls)

hero_ls.insert(1, "校领导")

hero_ls.insert(1, "校领导夫人")

print(hero_ls)

hero_ls.extend("BBQ")

print(hero_ls)

hero_ls.extend(['瑶', '暃'])

hero_ls.extend(['123'])

print(hero_ls)

#- pop():删除指定下标的数据(默认为最后?个),并返回该数据。

#- remove():移除列表中某个数据的第?个匹配项。

#- clear():清空列表

print(hero_ls.pop())

print(hero_ls.pop())

print(hero_ls.pop(1))

print(hero_ls)

hero_ls.remove('妲己')

print(hero_ls)

hero_ls.clear()

print(hero_ls)

# del hero_ls

# print(hero_ls)

# - 逆置:reverse()

lss = [1, 2, 3, 4, 5]

lss.reverse()

print(lss)

# - 排序:sort()

print(ls)

ls.sort()

print(ls)

ls.sort(reverse=True)

print(ls)

# - copy()

nls = lss.copy()

print(nls)

print(nls)

列表的嵌套

列表中还有列表, 可以表示数学中的矩阵

1

2

3

4

5

name_list = [['?明', '?红', '?绿'],

             ['Tom', 'Lily', 'Rose'],

             ['张三', '李四', '王五']]

print(name_list[1])

print(name_list[1][0])

练习

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

# 设计一个函数, 生成 n 行的 直角三角形 **, 存储到列表中返回

def generate(n):

    total_ls = []

    for i in range(n):

        ls = []

        for j in range(i+1):

            ls.append('* ')

        total_ls.append(ls)

    return total_ls

print(generate(6))

for row in generate(6):

    for v in row:

        print(v, end='')

    print()

## 设计一个发等额红包的函数

def send1(money, count):

    money*=100 #分

    m = money//count  # 每一份的金额

    l = money%count

    bag = []

    for i in range(count-1):

        bag.append(m/100)

    if l == 0:

        bag.append(m/100)

    else:

        bag.append((m+l)/100)

    return bag

print(send1(100, 3))

## 设计一个发手气红包的函数

def send2(money, count):

    money *= 100  # 分

    from random import randint

    bag = []

    for i in range(count - 1):

        m = money // count

        cur = 2*randint(0, m-1)

        money -= cur

        bag.append(cur/100)

    bag.append(money/100)

    return bag

print(send2(100, 3))

print(sum(send2(100, 3)))

## 设计一个抢红包的函数

原文链接:https://blog.csdn.net/qq_39276337/article/details/123620807
相关文章
最新更新