Python中的列表

目录

1 列表的基础

1.1 列表的数据类型

1.2 列表里的形式

2 可变的列表与不可变的字符串

2.1 字符串

2.2 列表

3 列表的遍历

3.1 列表索引

3.2 列表遍历

3.2.1  列表的遍历

3.2.2  列表为空

4 列表的常见操作

4.1 添加

4.2 删除

4.3 其他操作


1 列表的基础

1.1 列表的数据类型

列表是list形的列表

l0 = []
print(type(l0))

1.2 列表里的形式

列表里可以为数字,整型、浮点型、字符串、布尔类型……都可以

l2 = [1, 2, 3.14, "hello", False, ["A", "B", ["C1", "C2"]], range(10)]
print(l2)

2 可变的列表与不可变的字符串

2.1 字符串

字符串不能修改内容

字符串是一种不可变的数据类型,这意味着一旦创建了一个字符串对象,就无法更改其内容。这是由于字符串的内部实现方式。

在大多数编程语言中,字符串被表示为字符的序列,并且在内存中被分配连续的空间来存储这些字符。当你创建一个字符串时,它会占用一块内存空间,并将字符按顺序存储在其中。

由于字符串是不可变的,所以不能直接修改已经创建的字符串对象。如果试图通过更改字符串中的某个字符来修改字符串,那么实际上会创建一个新的字符串对象,而不是在原始字符串上进行修改。这是因为字符串的内部实现不允许直接修改已经分配的内存空间。

这种设计有一些好处。首先,不可变字符串可以提高性能,因为它们可以在多个地方共享并重用。另外,不可变字符串也更容易进行线程安全的操作,因为它们不会发生意外的修改。

如果你需要对字符串进行修改操作,可以使用一些字符串操作的函数或方法来创建一个新的字符串对象,以满足你的需求。这样做可以确保字符串对象的不可变性,并避免潜在的问题。

s0 = "hello world"
print(id(s0))
# 不能修改字符串
s0[0] = "a"
print(s0)

使用字符串方法修改字符串:可以看到修改之后的两个字符串的地址不同说明修改后是另一个全新的字符串了。

s0 = "hello world"
s1 = s0.replace("hello", "hi")
print(id(s1), id(s0))
print(s1, s0)

Python中的列表_第1张图片

2.2 列表

列表是一种可变的数据类型,与字符串不同,它允许修改其内容。这是由于列表的内部实现方式。

在大多数编程语言中,列表被表示为元素的有序集合,并且在内存中被分配一块空间来存储这些元素。当你创建一个列表时,它会占用一块内存空间,并将元素按顺序存储在其中。

与字符串不同,列表是可变的,这意味着可以直接修改已经创建的列表对象。你可以通过索引访问列表中的特定元素,并对其进行赋值或修改操作。

列表的可变性使得我们可以在原地修改列表中的元素,而不需要创建新的列表对象。这样可以提高效率并减少内存的使用。

列表的可变性也使得我们可以进行添加、删除和替换等操作,以便根据需要改变列表的结构和内容。

总之,列表之所以能够修改内容,是因为它们的内部实现允许对已经创建的列表对象进行直接修改,从而实现对列表的灵活操作。

l3 = []
print(id(l3), l3)
l3.append(1)
print(id(l3), l3)

Python中的列表_第2张图片

3 列表的遍历

3.1 列表索引

列表索引从0开始

l2 = [1, 2, 3.14, "hello", False, ["A", "B", ["C1", "C2"]], range(10)]
# 打印列表
print(l2)
# 获取列表长度
print(len(l2))
# 查看列表的第二个元素
print(l2[1])

3.2 列表遍历

3.2.1  列表的遍历

l5 = [1, 2, 3.14, "hello", False, ["A", "B", ["C1", "C2"]], range(10)]
for e in range(len(l5)):
    print(l5[e])

Python中的列表_第3张图片

3.2.2  列表为空

列表为空有以下几种情况:False, None, 0, "", []

l4 = [False, None, 0, "", []]
if []:
    print(1)
else:
    print(2)

4 列表的常见操作

4.1 添加

  • append:在末尾追加
l0 = [3, 5, 7]
# 末尾追加
r = l0.append(9)
print(l0)

  • insert:在指定位置添加元素
# # 在指定位置插入指定元素
l0 = [3, 5, 7]
l0.insert(3, 1)
print(l0)

  • extend:添加可迭代内容
# 将可迭代内容依次放入列表末尾  字符串 range 列表
l0 = [3, 5, 7]
l0.extend(range(11, 21, 2))
print(l0)

4.2 删除

  • pop:将指定位置元素删除 并且返回
l0 = [3, 5, 7]
print(l0, l0.pop(1))

l0 = [3, 5, 7]
l0.pop(2)
print(l0)

Python中的列表_第4张图片

  • remove:删除指定元素 没有返回值
l0 = [3, 5, 7]
l0.remove(3)
print(l0)

Python中的列表_第5张图片

  • clear:清空指定列表
l0 = [3, 5, 7]
l0.clear()
print(l0)

4.3 其他操作

  • index 返回索引,找不到则报错
l0 = [1, 3, 5, 7, 9, 5]
print(l0.index(5))

  • count 返回元素出现的次数
l0 = [1, 3, 5, 7, 9, 5]
print(l0.count(7))
print(l0.count(50))

Python中的列表_第6张图片

  • sort 排序
l0 = [1, 8, 5, 6, 9, 4]
r = l0.sort()
print(l0)
l0 = [1, 8, 5, 6, 9, 4]
r = l0.sort(reverse=True)
print(l0)

Python中的列表_第7张图片

  • reverse 将列表个元素逆置
l0 = [1, 3, 5, 7, 9, 5]
l0.reverse()
print(l0)

练习:随机向列表中放入50个位于10,100之间的数求最大最小的差值

import random
l = []
value = random.randint(10, 100)
l.append(int(value))
count = 1
max = l[0]
min = l[0]
while count < 50:
    value = random.randint(10, 100)
    l.append(int(value))
    count += 1
    for i in range(len(l)):
        if l[i] > max:
            max = l[i]
        elif l[i] < min:
            min = l[i]
print(max - min)

Python中的列表_第8张图片

你可能感兴趣的:(python,开发语言,前端)