**
列表篇进阶练习
**
1. 请创建一个列表
# 创建一个空列表
my_list = []
# 或者创建一个包含一些元素的列表
my_list = [1, 2, 3, 4, 5]
2. 通过输入一个字符串,然后完成创建一个列表,利用for循环对列表进行遍历
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 利用 for 循环对列表进行遍历
for element in my_list:
print(element)
3. 通过输入一个字符串,然后完成创建一个列表,利用while循环对列表进行遍历
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 利用 while 循环对列表进行遍历
index = 0
while index < len(my_list):
print(my_list[index])
index += 1
4. 通过输入一个字符串,然后完成创建一个列表,请输出列表的第一个元素
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 输出列表的第一个元素
if my_list:
print("列表的第一个元素是:", my_list[0])
else:
print("列表为空。")
5. 通过输入一个字符串,然后完成创建一个列表,请输出列表的最后一个元素
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 输出列表的最后一个元素
if my_list:
print("列表的最后一个元素是:", my_list[-1])
else:
print("列表为空。")
6. 通过输入一个字符串,然后完成创建一个列表,再输入一个字符串,并且将这个字符串添加到列表的后面,最后输出这个列表(使用循环语句输出)
# 输入一个字符串
input_str1 = input("请输入第一个字符串:")
# 将第一个字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str1)
# 输入第二个字符串
input_str2 = input("请输入第二个字符串:")
# 将第二个字符串添加到列表的后面(将字符串作为一个整体添加)
my_list.append(input_str2)
# 使用循环语句输出列表的每个元素
print("列表的元素是:")
for element in my_list:
print(element)
7. 分别输入两个字符串(两个input()),创建两个列表,利用extend()将两个列表进行合并,最后输出这个列表(使用循环语句输出)
# 输入第一个字符串
input_str1 = input("请输入第一个字符串:")
# 输入第二个字符串
input_str2 = input("请输入第二个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
list1 = list(input_str1)
list2 = list(input_str2)
# 利用 extend() 方法将两个列表进行合并
list1.extend(list2)
# 使用循环语句输出合并后的列表
print("合并后的列表元素是:")
for element in list1:
print(element)
8. 输入一个字符串,然后完成创建一个列表,再输入一个字符串,将列表的第一个元素修改成第二次输入的字符串,最后将列表输出
# 输入第一个字符串
input_str1 = input("请输入第一个字符串:")
# 将第一个字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str1)
# 输入第二个字符串
input_str2 = input("请输入第二个字符串:")
# 将列表的第一个元素修改成第二次输入的字符串
if my_list:
my_list[0] = input_str2
# 输出列表
print("修改后的列表是:", my_list)
9. 输入一个字符串,然后完成创建一个列表,再输入一个字符串,将列表的最后一个元素修改成第二次输入的字符串,最后将列表输出
# 输入第一个字符串
input_str1 = input("请输入第一个字符串:")
# 将第一个字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str1)
# 输入第二个字符串
input_str2 = input("请输入第二个字符串:")
# 将列表的最后一个元素修改成第二次输入的字符串
if my_list:
my_list[-1] = input_str2
# 输出列表
print("修改后的列表是:", my_list)
10. 通过输入一个字符串(纯int数字),完成创建一个列表,确保列表里面的元素是int类型,然后输出这个列表
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 输出列表
print("列表中的元素是:", int_list)
11. 通过输入一个字符串(纯int数字),完成创建一个列表,确保列表里面的元素是int类型,然后输出这个列表里面数字的总和
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 计算列表中数字的总和
total = sum(int_list)
# 输出列表中数字的总和
print("列表中数字的总和是:", total)
12. 输入一个字符串(纯int数字),完成创建一个列表,通过remove()删除列表的第一个元素
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 删除列表的第一个元素
if int_list:
int_list.remove(int_list[0])
# 输出修改后的列表
print("删除第一个元素后的列表是:", int_list)
13. 输入一个字符串(纯int数字),完成创建一个列表,通过pop()删除列表的第一个元素
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 pop() 删除列表的第一个元素
if int_list:
int_list.pop(0)
# 输出修改后的列表
print("删除第一个元素后的列表是:", int_list)
14. 输入一个字符串(纯int数字),完成创建一个列表,通过pop()删除列表的最后一个元素
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 pop() 删除列表的最后一个元素
if int_list:
int_list.pop()
# 输出修改后的列表
print("删除最后一个元素后的列表是:", int_list)
15. 输入一个字符串(纯int数字),完成创建一个列表,通过del删除整个列表
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 del 删除整个列表
del int_list
# 尝试访问已删除的列表会引发 NameError
try:
print(int_list)
except NameError as e:
print("已删除列表:", e)
16. 输入一个字符串(纯int数字),完成创建一个列表,通过del删除列表的第一个和第二个元素
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 del 删除列表的第一个和第二个元素
if len(int_list) >= 2:
del int_list[0] # 删除第一个元素
del int_list[0] # 删除第二个元素
# 输出修改后的列表
print("删除第一个和第二个元素后的列表是:", int_list)
17. 输入一个字符串,完成创建一个列表,通过for循环查找第一个元素是否在列表中
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 要查找的元素为列表的第一个元素
element_to_find = my_list[0]
# 使用 for 循环查找第一个元素是否在列表中
found = False
for element in my_list:
if element == element_to_find:
found = True
break
# 输出查找结果
if found:
print("第一个元素在列表中。")
else:
print("第一个元素不在列表中。")
18. 输入一个字符串,完成创建一个列表,通过if判断语句查找第一个元素是否在列表中
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 要查找的元素为列表的第一个元素
element_to_find = my_list[0]
# 使用 if 判断语句查找第一个元素是否在列表中
if element_to_find in my_list:
print("第一个元素在列表中。")
else:
print("第一个元素不在列表中。")
19. 输入一个字符串,完成创建一个列表,通过index()函数查找第一个元素是否在列表中
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 要查找的元素为列表的第一个元素
element_to_find = my_list[0]
# 使用 index() 函数查找第一个元素是否在列表中
try:
index = my_list.index(element_to_find)
print("第一个元素在列表中,索引位置为:", index)
except ValueError:
print("第一个元素不在列表中。")
20. 输入一个字符串,完成创建一个列表,通过count函数查找第一个元素出现的次数
# 输入一个字符串
input_str = input("请输入一个字符串:")
# 将字符串转换为列表(以每个字符为一个元素)
my_list = list(input_str)
# 要查找的元素为列表的第一个元素
element_to_find = my_list[0]
# 使用 count() 函数查找第一个元素出现的次数
count = my_list.count(element_to_find)
# 输出查找结果
print("第一个元素在列表中出现的次数为:", count)
21. 输入一个字符串(纯int数字),完成创建一个列表,通过for循环查找列表当中最大的一个数字
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 初始化最大值为列表的第一个元素
max_number = int_list[0]
# 使用 for 循环查找列表中的最大数字
for number in int_list:
if number > max_number:
max_number = number
# 输出最大值
print("列表中最大的数字是:", max_number)
22. 输入一个字符串(纯int数字),完成创建一个列表,通过for循环查找列表当中最小的一个数字
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 初始化最小值为列表的第一个元素
min_number = int_list[0]
# 使用 for 循环查找列表中的最小数字
for number in int_list:
if number < min_number:
min_number = number
# 输出最小值
print("列表中最小的数字是:", min_number)
23. 输入一个字符串(纯int数字),完成创建一个列表,通过max()函数查找列表当中最大的一个数字
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 max() 函数查找列表中的最大数字
max_number = max(int_list)
# 输出最大值
print("列表中最大的数字是:", max_number)
24. 输入一个字符串(纯int数字),完成创建一个列表,通过min()函数查找列表当中最小的一个数字
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 min() 函数查找列表中的最小数字
min_number = min(int_list)
# 输出最小值
print("列表中最小的数字是:", min_number)
25. 输入一个字符串(纯英文字符串),完成创建一个列表,通过min()函数查找列表当中最小的一个字符【联想ASCII码】
# 输入一个纯英文字符串
input_str = input("请输入一个纯英文字符串:")
# 将字符串转换为列表,每个字符作为一个元素
char_list = list(input_str)
# 使用 min() 函数查找列表中的最小字符,利用 ASCII 码进行比较
min_char = min(char_list)
# 输出最小字符
print("列表中最小的字符是:", min_char)
26. 输入一个字符串(纯英文字符串),完成创建一个列表,通过for循环查找列表当中最大的一个字符【联想ASCII码】
# 输入一个纯英文字符串
input_str = input("请输入一个纯英文字符串:")
# 将字符串转换为列表,每个字符作为一个元素
char_list = list(input_str)
# 初始化最大字符为列表的第一个元素
max_char = char_list[0]
# 使用 for 循环查找列表中的最大字符,利用 ASCII 码进行比较
for char in char_list:
if char > max_char:
max_char = char
# 输出最大字符
print("列表中最大的字符是:", max_char)
27. 输入一个字符串(纯int数字),完成创建一个列表,通过sort()函数进行数字的从小到大排列
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 sort() 函数进行列表的排序
int_list.sort()
# 输出排序后的列表
print("排序后的列表是:", int_list)
28. 输入一个字符串(纯int数字),完成创建一个列表,通过sort()函数进行数字的从大到小排列
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 sort() 函数进行列表的从大到小排序,通过reverse参数设置为True
int_list.sort(reverse=True)
# 输出排序后的列表
print("从大到小排序后的列表是:", int_list)
29. 输入一个字符串(纯int数字),完成创建一个列表,通过reverse()函数对列表进行前后翻转
# 输入一个字符串(纯 int 数字)
input_str = input("请输入一个由纯 int 数字组成的字符串:")
# 将字符串转换为列表,确保元素是 int 类型
int_list = [int(char) for char in input_str]
# 使用 reverse() 函数进行列表的前后翻转
int_list.reverse()
# 输出翻转后的列表
print("翻转后的列表是:", int_list)
30. 说说你对列表切片的理解
列表切片是指从列表中提取子列表的操作。它允许你通过指定起始索引、结束索引和步长来获取列表的一部分。以下是我对列表切片的理解:
-
基本语法:
sublist = my_list[start:end:step]
-
起始索引(start):
- 起始索引指定了切片的开始位置,包含在切片内。如果不指定,默认为索引0(列表的第一个元素)。
- 如果指定的是负数索引,表示从列表末尾开始计数,例如
-1
表示倒数第一个元素。
-
结束索引(end):
- 结束索引指定了切片的结束位置,但不包含在切片内。切片会取到索引值为
end-1
的元素。 - 如果不指定结束索引,则切片会一直取到列表的末尾。
- 如果指定的是负数索引,表示从列表末尾开始计数。
- 结束索引指定了切片的结束位置,但不包含在切片内。切片会取到索引值为
-
步长(step):
- 步长指定了切片中每个元素之间的间隔,默认为1。
- 可以使用负数步长,以反向顺序提取元素。
-
特点:
- 切片操作不会修改原始列表,而是返回一个新的列表。
- 可以用于快速复制列表、提取子序列等操作。
- 可以灵活地进行正向或反向的切片操作,甚至可以实现列表的翻转。
例如:
my_list[1:5]
:从索引1开始(包含),到索引5结束(不包含),步长为1。my_list[:3]
:从列表开头开始(索引0),到索引3结束(不包含),步长为1。my_list[-3:]
:从倒数第3个元素开始,到列表末尾结束,步长为1。my_list[::-1]
:对列表进行翻转。
总的来说,列表切片提供了一种方便且灵活的方法来获取列表中的子集,使得对列表的操作更加简洁和高效。