描述

使用随机函数randint(),建立两个长度为5的二维列表a和b。包含的数据如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
a列表:包含子列表 [学号,p成绩,m成绩],学号为从1开始递增的正整数,成绩为0-100之间的随机整数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
b列表:包含子列表 [学号,q成绩],学号为从1开始递增的正整数,成绩为0-100之间的随机整数‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
先需要将A,B两个列表数据进行合并,即将B列表中的‘q成绩’添加到A列表中的相同学号的子列表中。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
输入一个整数k,将B列表中的’q成绩’插入到A列表相同学号的子列表的k位置上。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
合并完成后,输出合并后的A列表。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
注意:为保证生成固定序列,本题需要使用同一个循环结构生成两个随机列表A和B,类似:

  1. for #######:
  2. #A列表添加 学号,p成绩,m成绩
  3. #B列表添加 学号,q成绩

输入‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
第一行输入s,随机种子‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
第二行输入p,插入位置‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
输出‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
合并后的A列表

使用随机函数randint(),建立两个长度为5的二维列表a和b。包含的数据如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
a列表:包含子列表 [学号,p成绩,m成绩],学号为从1开始递增的正整数,成绩为0-100之间的随机整数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
b列表:包含子列表 [学号,q成绩],学号为从1开始递增的正整数,成绩为0-100之间的随机整数‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  1. a=[]
  2. b=[]
  3. s=int(input())
  4. random.seed(s)
  5. for i in range(1,6):
  6. a.append([i,random.randint(0,100),random.randint(0,100)])
  7. b.append([i,random.randint(0,100)])

输入种子 :4
可得到如下的两个列表:

  1. [[1, 30, 38], [2, 92, 50], [3, 19, 11], [4, 2, 51], [5, 37, 97]]
  2. [[1, 13], [2, 61], [3, 8], [4, 70], [5, 7]]

先需要将 a,b 两个列表数据进行合并,即将 b 列表中的 ‘q成绩’ 添加到 a 列表中的相同学号的子列表中。
输入一个整数 k,将 b 列表中的 ‘q成绩’ 插入到 a 列表相同学号的子列表的 k 位置上。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
向列表中位置 i 插入数据 x 可以用 ls.insert(i,x) 实现

  1. x = int(input())
  2. for i in range(len(a)):
  3. a[i].insert(x,b[i][1])

完整参考代码:

  1. import random
  2. a=[]
  3. b=[]
  4. s=int(input())
  5. random.seed(s)
  6. for i in range(1,6):
  7. a.append([i,random.randint(0,100),random.randint(0,100)])
  8. b.append([i,random.randint(0,100)])
  9. p=int(input())
  10. for i in range(len(a)):
  11. a[i].insert(p,b[i][1])
  12. print(a)

可以将问题拆解,用函数形式分别完成部分功能,每个函数实现一个功能,代码少、逻辑更清晰,也容易维护和修改:

  1. import random
  2. def create(): # 产生列表
  3. a, b= [],[]
  4. for i in range(1, 6):
  5. a.append([i, random.randint(0, 100), random.randint(0, 100)])
  6. b.append([i, random.randint(0, 100)])
  7. return [a,b]
  8. def merge(ls,x): # 插入数据
  9. for i in range(len(ls[0])):
  10. ls[0][i].insert(x, ls[1][i][1])
  11. return ls[0]
  12. if __name__ == '__main__':
  13. s = int(input()) # 输入随机数种子
  14. x = int(input()) # 输入插入位置
  15. random.seed(s) # 输入随机数种子
  16. ls = create() # 调用函数,创建列表
  17. print(merge(ls,x)) # 调用函数,插入数据,输出返回结果