
" 我可不是为了被全人类喜欢才活着的、只要对于某一个人来说我是必要的,我就能活下去 "
一串数据怎么存—列表和字符串
前言
- 我们设想一个场景
- 当有一个电话号码在我们程序中时、我们可以用一个变量去存储它
- 但是如果有10个电话号码
- 你的策略可能是
- 第一种、用10个不同的变量来存储
- 第二种、用逗号把它们拼在一起然后用字符串来表示
%1 用一个变量来存储一个电话号码
tel1 = 12345678900
%2 用10个变量来存储10个电话号码
tel0 = 12345678900
tel1 = 13252357846
tel2 = 14567897622
tel3 = 18753976542
tel4 = 14876390087
tel5 = 12349087654
tel6 = 12349612345
tel7 = 12323234567
tel8 = 10098765456
tel9 = 13252758247
%3 用逗号拼在一起、用字符串来表示
tel = "12345678900,13252357846,14567897622,18753976542,14876390087,12349087654,12349612345,12323234567,10098765456,13252758247"
# 为了方便阅读、我们多行输入
tel = "12345678900," \
"13252357846," \
"14567897622," \
"18753976542," \
"14876390087," \
"12349087654," \
"12349612345," \
"12323234567," \
"10098765456," \
"13252758247"
总结
- 第一种使用多个变量的方式、在数据量很大的情况下使用起来会十分繁琐
- 第二种使用字符串的方式、如果我们需要对其中的某些数据做处理、那这种方式就很不方便灵活了
# 第一种 100万个电话号码用100万个变量来存储
tel0 = 12345678900
tel1 = 13252357846
tel2 = 14567897622
tel3 = 18753976542
tel4 = 14876390087
tel5 = 12349087654
tel6 = 12349612345
tel7 = 12323234567
tel8 = 10098765456
tel9 = 13252758247
tel...
tel...
tel...
# 第二种 不方便分辨空格及标点符号
a = "a, b,c.d/f"
# 你知道字符串里面有多少空格或者是标点符号吗?
# 根据索引来取是很复杂的、也不容易精确取到
print(a[1])
# output:,
list1 = [1,2,3,4,5]
print(list1[1])
# output:2
1、列表
1.1、列表的引入
# 语法
# 方括号代表列表、每个数据项放在方括号中
[ 数据项 1,数据项 2,...,数据项 N ]
# 对字符串的优化(tel = "12345678900,13252357846,...,13252758247")
# 用一个列表来装配
tels = [13011110000, 18022221111, 13433332222, 13344443333, 17855554444, 13866665555, 15177776666, 13388887777, 18799998888, 17800009999]
# 为了方便阅读、我们多行输入
tels = [
13011110000,
18022221111,
13433332222,
13344443333,
17855554444,
13866665555,
15177776666,
13388887777,
18799998888,
17800009999
]
1.2、列表中的数据类型
列表中的数据类型:任意类型
[100, 'about', True]
1.3、列表索引
- 列表中的每个数据项都有先后次序
- 第一种
- 最前面的数据项的位置编号为 0、之后依次是 1 、2 … N
- 第二种
- 最后面的数据的位置编号为 -1、之前依次是 -2 、-3… -N
- 这个位置编号在编程中的术语叫做索引(Index)
- 注意 Python 中索引是从 0 开始计数的、0 即代表第一个位置
- 强行用更大的索引值去取数据、代码直接就报错了
1.3.1、列表索引取值
%1
# 可以通过符号 [] 来获取某个索引所对应的数据项
a = [1,2,3,4,5]
print(a[1])
print(a[-4])
# output:2
# 2
%2
a = [1,2,3,4,5]
print(a[5])
# output:IndexError: list index out of range(列表索引超出范围)
1.3.2、列表索引改变值
a = [1,2,3,4,5]
a[0] = 100
# a[0]原本是 1、我们将它改成 100
print(a)
# 重新输出列表、可以看到列表第一项出现了改变
# output:[100, 2, 3, 4, 5]
1.4、列表长度
列表长度:列表中数据项的个数、叫做列表的长度
# 使用 len() 方法来获取列表的长度
a = [1,2,3,4,5]
print(len(a))
...print(len([1,2,3,4,5])
# output:5
# ...5
1.5、向列表中添加单个数据
- 此前、列表中的数据在创建后就已经被确定下来了、并一直保持着这个长度
- 但在很多时候、我们需要随时向列表中添加数据
# 向列表的末尾添加数据可以用 .append()这个方法
# 语法:列表.append(新数据)(新数据只能为一个)
# 拓展:append() 是列表的方法
#「方法」具体是什么我们这里不需要了解、此处暂且把方法理解为某个数据类型自带的功能
# 如 append() 是列表自带的功能
a = [1,2,3,4,5]
a.append(6)
print(a)
# output:[1, 2, 3, 4, 5, 6]
a = [1,2,3,4,5]
a.append(6,7)
print(a)
# output:TypeError: append() takes exactly one argument (2 given)(append()只接受一个参数(给定2个))
2、字符串
- 字符串也可以保存批量数据、只不过其中的数据项只能是字符
- 字符串以单引号或双引号以及包裹在其中的若干字符组成
a = "123"
b = "abc"
c = "小小"
2.1、字符串索引
- 字符串中的字符也是有先后次序的
- 字符串是字符的有序序列、所以也具有索引
- 可以根据索引取出其中某一个字符、其索引使用方式和列表相同
- 字符串不能像列表那样通过索引去改变数据项的值
- 因为字符串类型的值是不可变的(Immutable)(不可变序列)
a = "123"
b = "abc"
c = "小小"
print(a[0])
print(b[0])
print(c[0])
print("3a涵"[0])
print("3a涵"[1])
print("3a涵"[2])
# output:1
# a
# 小
# 3
# a
# 涵
2.2、字符串长度
字符串长度:字符串中字符的个数也就是字符串的长度(包括空格在内的所有空白符号)
# 使用 len() 方法来获取字符串的长度
a = "123"
b = "abc"
c = "小小"
print(len(a))
print(len("12345"))
# output:3
# 5
3、总结
列表
- 如果我们想要保存和表示批量数据
- 可以使用 Python 中的列表(List)类型
- 列表是有序序列、能保存任意类型的数据项
- 可以通过索引(Index)来获取和修改其中某一个数据项
- 可以通过 len() 函数来获取列表的长度
- 也可以通过 .append()方法在列表末尾追加数据项
字符串
- 如果数据是文本、那么可以用字符串类型(String)来表示
- 字符串类型是字符的有序序列
- 可以通过索引获取某个位置的字符
- 也可以通过 len() 函数来获取长度
4、C语言
- 数组是保存和表示批量数据的最基本的结构
- 它也是构造字符串、集合和容器的基石
- Python 中没有数组概念、取而代之的是列表这种更高级的数据结构
- 列表涵盖了数组的功能并提供了更多且更强大的功能
4.1、C语言定义数组
// 定义数组
int numbers[3];
// 定义数组并用指定值初始化:
int numbers[] = {1, 2, 3};
1726

被折叠的 条评论
为什么被折叠?



