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]
2.4 列表的切片
所谓列表切片就是处理列表的一部分。
students = ['Joey', 'Rhona', 'Stella', 'Lena', 'Tina', 'Kim', 'Keen', 'Steven']
print(students[0:3]) # 打印前三个
print(students[:3]) # 打印前三个
print(students[-3:]) # 打印后三个
print(students[2:5]) # 打印第2,第3,第4个
print(students[2:]) # 除前2个外打印所有
print(students[:-3]) # 除后3个外打印所有
以下为运行结果:
['Joey', 'Rhona', 'Stella']
['Joey', 'Rhona', 'Stella']
['Kim', 'Keen', 'Steven']
['Stella', 'Lena', 'Tina']
['Stella', 'Lena', 'Tina', 'Kim', 'Keen', 'Steven']
['Joey', 'Rhona', 'Stella', 'Lena', 'Tina']
列表的切片还有一个作用就是可以复制一个列表,而不改变原来列表的值。
lst = [1, 2, 3, 4, 5, 6, 7, 8]
lst1 = lst # lst的一个别名,改变lst1会改变lst
lst2 = lst[:] # lst的一个复制,操作不会改变lst的值
print(lst)
lst1.pop()
print("在操作lst1.pop()后,lst发生了改变:" )
print(lst)
lst2.pop()
print("在操作lst2.pop()后,lst没有发生了改变:")
print(lst)
以下为运行结果:
[1, 2, 3, 4, 5, 6, 7, 8]
在操作lst1.pop()后,lst发生了改变:
[1, 2, 3, 4, 5, 6, 7]
在操作lst2.pop()后,lst没有发生了改变:
[1, 2, 3, 4, 5, 6, 7]
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)