01 列表
Q1:reverse函数
num = [3,5,9,0,1,9,0,3]
num.reverse()
print(num)
Q2:二维列表
name = ['Niumei','YOLO','Niu Ke Le','Mona']
# 二维列表
food = ['pizza','fish','potato','beef']
number = [3,6,0,3]
friends = []
friends.append(name)
friends.append(food)
friends.append(number)
print(friends)
# name = ['Niumei', 'YOLO', 'Niu Ke Le', 'Mona']
# foods = ['pizza', 'fish', 'potato', 'beef']
# numbers = [3, 6, 0, 3]
# friends = []
# friends.append(name)
# friends.append(foods)
# friends.append(numbers)
# print(friends)
Q3:数组与列表的区别
在Python中,术语"数组"和"列表"通常用来描述两种不同的数据结构。下面是它们的主要区别:
-
数据类型:
- 列表(List): 是Python中的内置数据类型,可以包含不同类型的元素,包括数字、字符串、对象等。列表是动态数组,长度可以动态变化。
- 数组(Array): 在Python中,数组通常是指使用
array
模块创建的数组。数组要求所有元素具有相同的数据类型,这使得数组在一些数值计算和科学计算应用中更为高效。
-
模块和性能:
- 列表: 是Python的内置数据类型,无需导入其他模块,但在处理大量数据时可能不够高效。
- 数组: 通常使用
array
模块创建,该模块提供了一种在存储和处理大量数据时更为高效的方式。
-
性能优化:
- 列表: 由于列表可以包含不同类型的元素,其灵活性会带来一些性能上的开销。对于数值计算等任务,可能不如数组高效。
- 数组: 对于相同数据类型的元素,数组在执行一些操作时更为高效,因为它们在内存中存储的是连续的块。
法1:
# 获取输入的4位数字
a = int(input())
# 获取4位整数中的每一位的值
first = a//1000
second = (a//100)%10
third = (a//10) % 10
fourth = a % 10
# 创建临时数组arr,存储每一位的数值
arr = [first,second,third,fourth]
# 使用for循环对每一位的数值进行“加上3再除以9的余数代替该位数字”的操作
for i in range(len(arr)):
arr[i] = (arr[i] + 3) % 9
# 将第1位和第3位数字交换
arr[0],arr[2] = arr[2],arr[0]
# 将第2位和第4位数字交换
arr[1],arr[3] = arr[3],arr[1]
# 以四位数的形式 输出破解后的密码
print(arr[0],arr[1],arr[2],arr[3],sep='') # 6745
法2:比较推荐
#用户输入
a = input()
#空字符串
str1= str()
#for遍历
for i in range(len(a)):
str1 += str((int(a[i])+3)%9)
#重新排列输出
print(str1[2],str1[3],str1[0],str1[1],sep='')
其中使用 for
循环遍历输入字符串的每一位数字。对每一位数字执行如下操作:
- 将字符转换为整数:
int(a[i])
- 加上3:
(int(a[i]) + 3)
- 对9取余数:
% 9
- 将结果转换为字符串,并添加到
str1
中。