Python基本数据类型之字符串、列表、元组、字典讲解
Python基本数据类型之字符串、列表、元组、字典讲解
1. 字符串
1.1 字符串的拼接
在python中,字符串使用运算符+进行拼接。同时,若要将字符串与数字进行拼接,需要使用str()函数对数字进行显式类型转换。示例代码如下:
first = "Joey" last = "Mao" name = first + " " + last age = 23 print("My name is " + name + ". And I'm " + str(age) + " years old.")
以下为运行结果:
My name is Joey Mao. And I'm 23 years old.
1.2 字符串的输出格式控制
对字符串对象,调用title(),upper(),lower()方法返回一个字符串对象,实现对字符串进行标题化,大写化,小写化的操作。
值得注意的是,这些操作并不会改变对象本身的值。
示例代码如下:
name = "joey Mao" print("name.title(): " + name.title()) print("name.upper(): " + name.upper()) print("name.lower(): " + name.lower())
以下为运行结果:
Joey Mao JOEY MAO joey mao
对字符串对象,调用strip(),rstrip(),lstrip()方法返回一个字符串对象,并忽略字符串两侧、右侧、左侧的空白。
同样地,这些操作并不会改变对象本身的值。
示例代码如下:
name = " joey mao " print("'" + name.strip() + "'") print("'" + name.rstrip() + "'") print("'" + name.lstrip() + "'")
以下为运行结果:
'joey mao' ' joey mao' 'joey mao '
2. 列表
Python中,列表用[]表示,并使用list_name[index]的方式访问列表list_name在index处的元素。一个列表中的不同元素可以是不同类型。
2.1 列表的操作
列表对象调用append(element)方法,在列表末尾添加元素element。 列表对象调用insert(index, element)方法,在列表index处添加元素element。 使用语句del list_name[index]语句删除列表list_name在index处的元素。 列表对象调用不含参数的pop()方法返回列表末尾的元素,并在列表中删除这个元素。 列表对象调用pop(index)方法返回列表在index处的元素,并且在列表中删除这个元素。 列表对象调用remove(value)方法删除列表的一个值为value的元素(一般为找到的第一个)。
示例程序如下:
numbers = ['1', '2', '3', '4', '5', '6'] print("Numbers: " + str(numbers)) numbers.append('7') print("After append('7'): " + str(numbers)) numbers.insert(0, '0') print("After insert(0, '0'): " + str(numbers)) del numbers[7] print("After del numbers[7]: " + str(numbers)) numbers.pop() print("After pop(): " + str(numbers)) numbers.pop(0) print("After pop(0): " + str(numbers)) numbers.remove('1') print("After remove('1'): " + str(numbers))
以下为运行结果:
Numbers: ['1', '2', '3', '4', '5', '6'] After append('7'): ['1', '2', '3', '4', '5', '6', '7'] After insert(0, '0'): ['0', '1', '2', '3', '4', '5', '6', '7'] After del numbers[7]: ['0', '1', '2', '3', '4', '5', '6'] After pop(): ['0', '1', '2', '3', '4', '5'] After pop(0): ['1', '2', '3', '4', '5'] After remove('1'): ['2', '3', '4', '5']
利用函数len(list_name)可以得到列表对象list_name的长度。
2.2 列表的排序
列表对象调用sort()方法可以实现升序排序并且修改列表本身。若加上参数reverse=True,则可以实现降序排序。
将列表对象作为参数传入sorted()方法可以实现升序排序并且返回一个排序后的列表,并不会修改列表本身。同样地,若加上参数reverse=True,则可以实现降序排序。
示例代码如下:
message = ['I', 'L', 'O', 'V', 'E', 'C', 'A', 'T'] sorted_message = sorted(message) print("The outcome of sorted(message) is : " + str(sorted_message)) print("The value of message is not changed: " + str(message)) message.sort(reverse=True) print("After message.sort(reverse=True): " + str(message))
以下为运行结果:
The outcome of sorted(message) is : ['A', 'C', 'E', 'I', 'L', 'O', 'T', 'V'] The value of message is not changed: ['I', 'L', 'O', 'V', 'E', 'C', 'A', 'T'] After message.sort(reverse=True): ['V', 'T', 'O', 'L', 'I', 'E', 'C', 'A']
对列表对象调用reverse()函数,可以将列表倒序排列(并非排序,而是将原列表反向排列。)示例代码如下:
message = ['I', 'L', 'O', 'V', 'E', 'C', 'A', 'T'] message.reverse() print(message)
以下为运行结果:
['T', 'A', 'C', 'E', 'V', 'O', 'L', 'I']
2.3 遍历列表
遍历列表的一般操作为:
for element in list_name: func(element)
在这里我们要注意,尽量避免在循环中修改列表本身。最好的方法是使用列表的一个副本:
for element in list_name[:]: func(element)
range(start,end)生成一个以start开头end-1结尾的数字列表(不包含end)。同时,range()函数也可以添加步长参数step生成相邻两数间隔不为1的数字列表。
Python的列表还有一个很强大的功能就是列表解析式。具体语法为[func(element) for element in list_name], 可以用来将某个函数作用到列表上并生成一个新的列表。示例代码如下:
squares = [value**2 for value in range(1,11)] # 对1,2,3,4,5,6,7,8,9,10的求平方 print(value)
以下为运行结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3. 元组
元组即“不可变的列表”,使用()来标识,可以和列表一样使用索引来进行访问,也可以使用for进行遍历。
4. 字典
字典是Python中一种独特且强大的数据结构,由一些无序键值对构成,且可以通过键来访问对应的值。
4.1 字典的构造与修改
在Python中,字典使用{}构造:my_dict = {'key1': value2, 'key2': value2, ...}。
也可以在已经构造的字典中直接添加键值对:my_dict['new_key'] = new_value。
想要修改某个键对应的值,直接按键名对字典进行索引,并且赋值:my_dict['key'] = new_value。
若希望删除字典的某个键值对,则需要调用del语句:del my_dict['key']。
4.2 字典的遍历
若需要遍历字典的键值对,使用如下语句:
for key, value in my_list.items(): func(key, value)
若仅需要遍历字典的键,则使用如下语句:
for key in my_list.keys(): func(key)
若仅需要遍历字典的值,则使用如下语句:
for value in my_list.values(): func(value)