关于Python列表、元组、字典相,做了几道题。

      1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=[“alex”,“eric”,“rain”]

  li=["alex","eric","rain"]

  new_li="_".join(li)

  print(new_li)

  #输出结果:

  alex_eric_rain

  注意:如果列表中有数字,需要转换成字符串再连接

  li=["alex","eric",123]

  li[2]=str(li[2])

  new_li="_".join(li)

  print(new_li)

  #输出结果:

  alex_eric_123

  2、查找列表中元素,移除每个元素的空格,并查找以a或A开头,并且以c结尾的所有元素。

  li = ["alec", "aric", "Alex", "Tony", "rain"]

  tu = ("alec", "aric", "Alex", "Tony", "rain")

  dic = {'k1': "alex", 'k2': 'aric', "k3": "Alex", "k4": "Tony"}

  list1 = list(tu)

  list2 = list(dic.values())

  newlist = li + list1 + list2

  for i in newlist:

  ret = i.strip() #i.strip():删除字符串当前行首尾的的空格

  if (ret.startswith('a') or ret.startswith('A')) and ret.endswith('c'):

  print(ret)

  #输出结果:

  alec

  aric

  alec

  aric

  aric

  #注意:

  列表可以直接相加,变成另一个全新的列表

  3、写代码,有如下列表,li=[“alex”,“eric”,“rain”],按照要求实现每一个功能

  a.计算列表长度并输出

  li = ["alex", "eric", "rain"]

  print(len(li))

  print(li)

  #输出结果:

  3

  ['alex', 'eric', 'rain']

  b.列表中追加元素"seven",并输出添加后的列表

  li = ["alex", "eric", "rain"]

  li.append("seven")

  print(li)

  #输出结果:

  ['alex', 'eric', 'rain', 'seven']

  c.请在列表中的第一个位置插入元素"Tony",并输出添加后的列表

  li = ["alex", "eric", "rain"]

  li.insert(0,"Tony")

  print(li)

  #输出结果:

  ['Tony', 'alex', 'eric', 'rain']

  d.请修改列表中的第2个位置的元素为"Kelly",并输出修改后的列表

  li = ["alex", "eric", "rain"]

  li[1]="Kelly"

  print(li)

  #输出结果:

  ['alex', 'Kelly', 'rain']

  e.请删除列表中的元素"eric",并输出删除后的列表

  li = ["alex", "eric", "rain"]

  li.remove("eric")

  print(li)

  #输出结果:

  ['alex', 'rain']

  f.请删除列表中的第2个元素,并输出删除的元素的值和删除后的列表

  li = ["alex", "eric", "rain"]

  new_li=li.pop(1)

  print(li,new_li)

  #输出结果:

  ['alex', 'rain'] eric

  g.请删除列表中的第3个元素,并输出删除后的列表

  li = ["alex", "eric", "rain"]

  del li[2]

  print(li)

  #输出结果:

  ['alex', 'eric']

  h.请删除列表中的第2至4个元素,并输出删除元素后的列表

  li = ["alex", "eric", "rain"]

  del li[1:4]

  print(li)

  #输出结果:['alex']

  i.请将列表所有的元素反转,并输出反转后的列表==

  li = ["alex", "eric", "rain"]

  li.reverse()

  print(li)

  #输出结果:

  ['rain', 'eric', 'alex']

  j.请使用for、len、range输出列表的索引

  li = ["alex", "eric", "rain"]

  for i in range(len(li)):

  print(i)

  #输出结果:

  0

  1

  2

  k.请使用enumrate输出列表元素和序号(序号从100开始)

  li = ["alex", "eric", "rain"]

  for index,value in enumerate(li, 100):

  print(index,value)

  #输出结果:

  100 alex

  101 eric

  102 rain

  l.请使用for循环输出列表的所有元素==

  li = ["alex", "eric", "rain"]

  for i in li:

  print(i)

  #输出结果:

  alex

  eric

  rain

  4、写代码,有如下列表,li=[“hello”,“seven”,[“mon”,[“h”,“kelly”],“all”,123,446],按照要求实现每一个功能

  a.请根据索引输出"kelly"

  li=["hello","seven",["mon",["h","kelly"],"all",123,446]]

  print(li[2][1][1])

  #输出结果:kelly

  b.请使用索引找到"all",元素并将其修改为"ALL",如li[0][1][9]…

  li=["hello","seven",["mon",["h","kelly"],"all",123,446]]

  print(li[2][2].capitalize())

  #输出结果:

  ALL

  5、写代码,有如下元组,tu=(“alex”,“eric”,“rain”),按照要求实现每一个功能

  a.计算元组长度并输出==

  tu=("alex","eric","rain")

  print(len(tu))

  #输出结果:3

  b.获取元组的第二个元素,并输出

  tu=("alex","eric","rain")

  print(tu[1])

  #输出结果:eric

  c.获取元组的1-2个元素,并输出

  tu=("alex","eric","rain")

  print(tu[0:2])

  #输出结果:('alex', 'eric')

  d.请使用for、len、range输出元组的索引

  tu=("alex","eric","rain")

  for i in range(len(tu)):

  print(i)

  #输出结果:

  0

  1

  2

  f.请使用enumrate输出元组元素和序号(序号从10开始)

  tu=("alex","eric","rain")

  for i,v in enumerate(tu,10):

  print(i,v)

  #输出结果:

  10 alex

  11 eric

  12 rain

  6、有如下变量,请实现要求的功能

  tu=(“alex”,[11,22,{“k1”:‘v1’,“k2”:’[“age”,“name”]’,“k3”:(11,22,33)},44])

  a.请讲述元组的特性

  (1)元组内可以为任意。

  (2)元组的一级元组不允许被修改。

  b.请问tu变量中的第一个元素"alex"是否可以被修改?

  不可以

  c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"

  k2对应的值是列表,可以被修改,如下:

  tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])

  tu[1][2]["k2"].append("Seven")

  print(tu)

  #输出结果:

  ['age', 'name', 'Seven']

  d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"

  元组,不可以修改

  7、字典dic={“k1”:“v1”,“k2”:“v2”,“k3”:[11,22,33]}

  a.请循环输出所有的key

  dic={"k1":"v1","k2":"v2","k3":[11,22,33]}

  for i in dic:

  print(i)

  #输出结果:

  k1

  k2

  k3

  b.请循环输出所有的value

  dic={"k1":"v1","k2":"v2","k3":[11,22,33]}

  for i in dic.values():

  print(i)

  #输出结果:

  v1

  v2

  [11, 22, 33]

  c.请循环输出所有的key和value

  dic={"k1":"v1","k2":"v2","k3":[11,22,33]}

  for i,v in dic.items():

  print(i,v)

  #输出结果:

  k1 v1

  k2 v2

  k3 [11, 22, 33]

  d.请在字典中添加一个键值对,“k4”:“v4”,输出添加后的字典

  dic={"k1":"v1","k2":"v2","k3":[11,22,33]}

  dic["k4"]="v4"

  print(dic)

  #输出结果:

  {'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}

  e.请修改字典中"k1"的值为"alex",输出修改后的字典

  dic={"k1":"v1","k2":"v2","k3":[11,22,33]}

  dic["k1"]="alex"

  print(dic)

  #输出结果:

  {'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33]}

  f.请在k3对应的值中追加一个元素44,输出修改后的字典

  dic={"k1":"v1","k2":"v2","k3":[11,22,33]}

  dic["k3"].append(44)

  print(dic)

  #输出结果:

  {'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33, 44]}

  g.请在k3对应的值的第一个位置插入元素18,输出修改后的字典

  dic={"k1":"v1","k2":"v2","k3":[11,22,33]}

  dic["k3"].insert(0,18)

  print(dic)

  #输出结果:

  {'k1': 'v1', 'k2': 'v2', 'k3': [18, 11, 22, 33]}

  8、a.将字符串 s = “alex” 转换成列表

  s = "alex"

  v = list(s)

  print(v)

  #输出结果:['a', 'l', 'e', 'x']

  b.将列表li=[“alex”,“seven”]转换成元组

  li=["alex","seven"]

  new_li=tuple(li)

  print(new_li)

  #输出结果:('alex', 'seven')

  c.将元组tu=(“Alex”,“seven”)转换成列表

  tu=("Alex","seven")

  new_tu=list(tu)

  print(new_tu)

  #输出结果:['Alex', 'seven']

  d.将列表li=[“alex”,“seven”]转换成字典且字典的key按照10开始向后递增

  li = ["alex","seven"]

  n1 = {}

  for k,v in enumerate(li,10):

  n1[k] = v

  print(n1)

  #输出结果:

  {10: 'alex'}

  {10: 'alex', 11: 'seven'}

  9、元素分类:有如下集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保留至字典的第一个key中,将小于66的值保存至第二个key值中。即:{“k1”:大于66的所有值,“k2”:小于66的所有值}

  方法一:

  li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]

  li.sort() #排序

  z = li.index(66)

  l = len(li)

  dic = {"k1": li[z + 1:l], "k2": li[0:z]}

  print(dic)

  #输出结果:

  {'k1': [77, 88, 90, 99], 'k2': [11, 22, 33, 44, 55]}

  方法二:

  li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]

  li.sort()

  lo = []

  lp = []

  for i in li:

  if i < 66:

  lo.append(i)

  elif i > 66:

  lp.append(i)

  dic = {"k1": lo, "k2": lp}

  print(dic)

  #输出结果:

  {'k1': [11, 22, 33, 44, 55], 'k2': [77, 88, 90, 99]}

  ##我写的方法:

  li = [11,22,33,44,55,66,77,88,99,90]

  v1 = []

  v2 = []

  dic={

  "k1":v1,

  "k2":v2

  }

  for i in li:

  if i>66:

  v1.append(i)

  elif i<66:

  v2.append(i)

  print(dic)

  输出结果:

  {'k1': [11, 22, 33, 44, 55], 'k2': [77, 88, 99, 90]}

  10、输出商品列表,用户输入序号,显示用户选中的商品

  商品 li = [“手机”,“电脑”,“鼠标垫”,“游艇”]

  a.允许用户添加商品

  b.用户输入序号显示内容

  li = ["手机","电脑","鼠标垫","游艇"]

  print("当前商品列表如下:")

  for i,v in enumerate(li,1):

  print(i,v)

  l = input("是否要添加商品?添加商品请选择“1”,不添加商品直接点击“Enter”键即可")

  if l =="1":

  a = input(">>>请输入添加的商品:")

  li.append(a)

  print(li)

  p = input("是否要查看商品序号?查看请选择“1”,不查看直接点击“Enter”键即可")

  if p =="1":

  b = int(input(">>>请输入商品的序号:"))

  print(li[b-1])

  11、用户交互显示类似省县市N级联动的选择

  a.允许用户增加内容

  b.允许用户选择查看某一个级别内容

  12、列举布尔值是False的所有值

  0、[]、()、{}、None、""

  13、有两个列表

  l1=[11,22,33]

  l2=[22,33,44]

  a.获取l1和l2中内容相同的元素列表

  l1=[11,22,33]

  l2=[22,33,44]

  for i in l1:

  if i in l2:

  print(i)

  #输出结果:

  22

  33

  b.获取l1中有,l2中没有的元素列表

  l1=[11,22,33]

  l2=[22,33,44]

  for i in l1:

  if i not in l2:

  print(i)

  #输出结果:11

  c.获取l2中有,l1中没有的元素列表

  l1=[11,22,33]

  l2=[22,33,44]

  for i in l2:

  if i not in l1:

  print(i)

  #输出结果:44

  d.获取l1和l2中内容不同的元素列表

  l1=[11,22,33]

  l2=[22,33,44]

  for i in l1 :

  if i not in l2:

  print(i)

  for i in l2 :

  if i not in l1:

  print(i)

  #输出结果:

  11

  44

  14、利用for循环和range输出

  a.for循环从小到大输出1-100

  for i in range(1,101):

  print(i)

  b.for循环从大到小输出1-100

  for i in range(100,0,-1):

  print(i)

  c.while循环从小到大输出1-100

  while True:

  a = 100

  for i in range(100):

  print(a-i)

  break

  d.while循环从大到小输出1-100

  while True:

  for i in range(100):

  print(i+1)

  break

  16、分页显示内容:

  a.通过for循环创建301条数据,数据类型不限,如

  alex-1 [email protected] pwd1

  alex-2 [email protected] pwd2

  alex-3 [email protected] pwd3

  …

  b.提示用户,请输入要查看的页码,当用户输入指定页码,则显示指定数据

  注意:

  -每页显示10条数据

  -用户输入页码是非十进制数字,则提示内容格式错误

  for i in range(301):

  a = "alex- - %salex%[email protected] pwd%s"%(i+1,i+1,i+1)

  print(a)

  ```python

  ==**17、有 1,2,3,4,5,6,7,8,8个数字,能组成多少个互不相同且无重复的两位数??**==

  ```python

  count=0

  for i in range(1,9):

  for v in range(1,9):

  if(i!=v):

  count +=1

  print(count)

  #输出结果:56

  18、利用for循环和range循环输出9*9乘法表

  (1)长方形

  for i in range(1,10):

  for v in range(1,10):

  print("%2d*%2d=%2d"%(i,v,i*v),end=" ")

  print("")

  #输出结果:郑州妇科医院 http://m.zyfuke.com/

  1* 1= 1 1* 2= 2 1* 3= 3 1* 4= 4 1* 5= 5 1* 6= 6 1* 7= 7 1* 8= 8 1* 9= 9

  2* 1= 2 2* 2= 4 2* 3= 6 2* 4= 8 2* 5=10 2* 6=12 2* 7=14 2* 8=16 2* 9=18

  3* 1= 3 3* 2= 6 3* 3= 9 3* 4=12 3* 5=15 3* 6=18 3* 7=21 3* 8=24 3* 9=27

  4* 1= 4 4* 2= 8 4* 3=12 4* 4=16 4* 5=20 4* 6=24 4* 7=28 4* 8=32 4* 9=36

  5* 1= 5 5* 2=10 5* 3=15 5* 4=20 5* 5=25 5* 6=30 5* 7=35 5* 8=40 5* 9=45

  6* 1= 6 6* 2=12 6* 3=18 6* 4=24 6* 5=30 6* 6=36 6* 7=42 6* 8=48 6* 9=54

  7* 1= 7 7* 2=14 7* 3=21 7* 4=28 7* 5=35 7* 6=42 7* 7=49 7* 8=56 7* 9=63

  8* 1= 8 8* 2=16 8* 3=24 8* 4=32 8* 5=40 8* 6=48 8* 7=56 8* 8=64 8* 9=72

  9* 1= 9 9* 2=18 9* 3=27 9* 4=36 9* 5=45 9* 6=54 9* 7=63 9* 8=72 9* 9=81

  注意:

  代码中end=“ ”表示输出不换行,仅限python3有效

  加print(" ")作用:使外循环换行

  (2)左上三角形

  for i in range(1,10):

  for j in range(i,10):

  print("%d*%d=%2d"%(i,j,i*j),end=" ")

  print("")

  #输出结果:

  1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9

  2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18

  3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27

  4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36

  5*5=25 5*6=30 5*7=35 5*8=40 5*9=45

  6*6=36 6*7=42 6*8=48 6*9=54

  7*7=49 7*8=56 7*9=63

  8*8=64 8*9=72

  9*9=81

  (3)左下三角形

  for i in range(1,10):

  for j in range(1,i+1):

  print("%d*%d=%2d"%(i,j,i*j),end=" ")

  print("")

  #输出结果:

  1*1= 1

  2*1= 2 2*2= 4

  3*1= 3 3*2= 6 3*3= 9

  4*1= 4 4*2= 8 4*3=12 4*4=16

  5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25

  6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

  7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

  8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

  9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

  (4)右上三角形

  for i in range(1,10):

  for j in range(1,i):

  print(end=" ")

  for k in range(i,10):

  print("%d*%d=%2d"%(i,k,i*k),end=" ")

  print("")

  #输出结果:

  1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9

  2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18

  3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27

  4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36

  5*5=25 5*6=30 5*7=35 5*8=40 5*9=45

  6*6=36 6*7=42 6*8=48 6*9=54

  7*7=49 7*8=56 7*9=63

  8*8=64 8*9=72

  9*9=81

  (5)右下三角形

  for i in range(1,10):

  for j in range(1,10-i):

  print(end=" ")

  for k in range(1,i+1):

  print("%d*%d=%2d"%(i,k,i*k),end=" ")

  print("")

  #输出结果:

  1*1= 1

  2*1= 2 2*2= 4

  3*1= 3 3*2= 6 3*3= 9

  4*1= 4 4*2= 8 4*3=12 4*4=16

  5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25

  6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

  7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

  8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

  9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

  19、有以下列表:

  nums=[2,7,11,15,1,8,7]

  请找到列表中任意两个元素相加能够等于9的元素集合,如:[(0,1),(4,5)]

  nums = [2, 7, 11, 15, 1, 8, 7]

  li = []

  n1 = []

  for i in nums:

  for x in nums:

  y = i + x

  if y == 9:

  v = [i, x]

  x =(i,x)

  if v not in li:

  v.reverse()

  if v not in li:

  n1.append(x)

  li.append(v)

  print(n1)

  #输出结果:

  [(2, 7), (1, 8)]

  nums=[2,7,11,15,1,8,7]

  li=[]

  for i in nums:

  for j in nums:

  if i + j == 9:

  x = (i,j)

  li.append(x)

  li = list(set(li)) #去重操作

  print(li)

  #输出结果:

  [(2, 7), (1, 8), (8, 1), (7, 2)]