欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python基本数据类型之字符串、列表、元组、字典讲解

程序员文章站 2022-04-15 12:39:27
Python基本数据类型之字符串、列表、元组、字典讲解 1. 字符串 1.1 字符串的拼接 在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)