内容提要
主要介绍了python中的变量类型,之前不经常用的点有:
列表的下标可以是负数,无论正负,都是从左侧开始,从左到右依次递增。
还有截取操作[头:尾:步长),+表示连接,*表示重复。
列表与元组类型的区别
字典类型的使用(类似于map)
python的变量类型
python中有五种标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。 这和C++很不一样。
string 字符串类型
字符串类型的访问方式和C++有些许区别
字串列表的取值顺序有两种,从左到右和从右到左,从左到右的索引是从0开始的,从右到左的索引是从-1开始的。
ss = "Hello World!"
print(ss[0])
print(ss[-1])
print(type(ss))
H
!
<class 'str'>
如果要实现从字符串中截取一段子串的话,可以使用[头下标:尾下标]
来截取相应的字符串,其中下标是从0开始算起的,可以是正数或者负数,下标可以为空表示取到头或者尾。
s = "Hello World!"
s1 = s[0:5]
print(s1)
s2 = s[6:]
print(s2)
Hello
World!
s = "Hello World!"
s1 = s[-7:-1]
print(s1)
s2 = s[-7:]
print(s2)
World
World!
所以,头坐标都是相对于左边的,尾下标都是相对于右边的。
而且,这个[头坐标:尾座标]
其实是数学中的前闭后开区间,也就是截取的范围是[头坐标:尾坐标)
s = "Hello World!"
s1 = s[:-1]
print(s1)
s2 = s[:2]
print(s2)
Hello World
He
同理,头坐标也是可以进行省略的,如果省略的话,就表示从头开始截取。再次强调❗️头坐标是相对于左边的。
最左边都是最小值,最右边都是最大值,只不过负数的最大和最小与其绝对值正好相反。
Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:也就是这个样子的[头坐标:尾坐标:步长]
s = "Hello World!"
s1 = s[0:5:2] # [0,5),步长为2,每间隔一个字符取一个进行输出
Hlo
list 列表类型
列表可以完成大多数集合类的数据结构实现,比如队列、栈等。
它支持字符、数字、字符串甚至可以包含列表(即嵌套)。
列表直接用中括号[]
表示,内部元素用逗号,
隔开。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
对了,列表中和字符串类似,也可以使用[头坐标:尾坐标:步长]
来截取。同时,+
表示连接运算符,*
是重复操作。
list1 = [1,2,'hello','world']
print(list1)
print(list1[0::2])
print(list1 * 2)
print(list1 + [3,4,5])
# print(list1 + 1) # 报错
print(type(list1))
[1, 2, 'hello', 'world']
[1, 'hello']
[1, 2, 'hello', 'world', 1, 2, 'hello', 'world']
[1, 2, 'hello', 'world', 3, 4, 5]
<class 'list'>
列表竟然还可以直接用加号来拼接,这简直了!!!
🐖 需要注意的是,➕只能用来连接同种类型的数据,比如列表只能和列表连接,字符串只能和字符串连接,不能混着来。
# print('111'+1) # 报错
tuple 元组类型
元组类似于列表,但是 元组的元素不能修改 ,元组使用小括号()
,列表使用方括号[]
。
tuple1 = (1,2,'hello','world',(4,5,6))
print(tuple1)
print(tuple1[4][0:2])
print(tuple1[4][0:2][0])
for e in tuple1:
print(type(e))
(1, 2, 'hello', 'world', (4, 5, 6))
(4, 5)
4
<class 'int'>
<class 'int'>
<class 'str'>
<class 'str'>
<class 'tuple'>
总之,对于tuple来说,只需要记住,它和list的不同之处在于,tuple是不可变的,而list是可变的。
dictionary 字典类型
列表是有序的对象集合,而字典是无序的对象集合。
字典当中的元素是通过键来存取的,而不是通过偏移存取。 类似于C++中的map。
字典用{}
来进行标识,字典由索引(key)和它对应的值value组成。
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name':'john','code':6734,'dept':'sales'}
print(dict['one'])
print(dict[2])
print(tinydict)
print(tinydict.keys())
print(tinydict.values())
print(type(tinydict))
This is one
This is two
{'name': 'john', 'code': 6734, 'dept': 'sales'}
dict_keys(['name', 'code', 'dept'])
dict_values(['john', 6734, 'sales'])
<class 'dict'>