第二章练习题 答案

时间:2021-12-13 00:13:19

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

该题目主要是考的字符串的拼接方法,jion方法,
s=""
li=['alex','eric','rain']
s="_".jion(li)

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"}

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

for i in li:
    
     i=i.strip()
     if i.startswith("a")ori.startswith("A") and i.endswith("c"):
         print(i)

3、写代码,有如下列表,按照要求实现每一个功能

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

  • 计算列表长度并输出
  • 列表中追加元素“seven”,并输出添加后的列表
  • 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
  • 请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
  • 请删除列表中的元素“eric”,并输出修改后的列表
  • 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
  • 请删除列表中的第3个元素,并输出删除元素后的列表
  • 请删除列表中的第2至4个元素,并输出删除元素后的列表
  • 请将列表所有的元素反转,并输出反转后的列表
  • 请使用for、len、range输出列表的索引
  • 请使用enumrate输出列表元素和序号(序号从100开始)
  • 请使用for循环输出列表的所有元素
li=['alex','eric','rain']
#计算列表长度并输出
print(冷(li))

#列表追加元素“seven",并输出添加后的列表
li.append(”seven“)
print(li)


# 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
li.insert(0, "Tony")
print(li)

# 请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
li[1] = "Kelly"
print(li)

# 请删除列表中的元素“eric”,并输出修改后的列表
li.remove("eric")  # 指定的是元素
print(li)

# 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
li_pop = li.pop(1)  # 指定的是下标位置
print(li_pop, li)

# 请删除列表中的第3个元素,并输出删除元素后的列表
del li[2]  # 指定的是下标位置
print(li)

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

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

# 请使用for、len、range输出列表的索引
for i in range(len(li)):
    print(i)

# 请使用enumrate输出列表元素和序号(序号从100开始)
for index, val in enumerate(li, 100):
    print(index)

# 请使用for循环输出列表的所有元素
for i in li:
    print(i)

 

4、写代码,有如下列表,请按照功能要求实现每一个功能

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

  • 请根据索引输出“Kelly”
  • 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
# 请根据索引输出“Kelly”
li[2][1][1]
# 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
li[2][2].upper()
li[2][2] = "ALL"

5、写代码,有如下元组,请按照功能要求实现每一个功能

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

  • 计算元组长度并输出
  • 获取元组的第2个元素,并输出
  • 获取元组的第1-2个元素,并输出
  • 请使用for输出元组的元素
  • 请使用for、len、range输出元组的索引
  • 请使用enumrate输出元祖元素和序号(序号从10开始)
# 计算元组长度并输出
print(len(t))
# 获取元组的第2个元素,并输出
print(t[1])
# 获取元组的第1-2个元素,并输出
print(t[1:2])
# 请使用for输出元组的元素
for i in t:
    print(i)
# 请使用for、len、range输出元组的索引
for i in range(len(t)):
    print(i)
请使用enumrate输出元祖元素和序号(序号从10开始)
for index, val in enumerate(t, 10):
    print(index)

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

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

  • 讲述元祖的特性
  • 请问tu变量中的第一个元素“alex”是否可被修改?
  • 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
  • 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
# 讲述元祖的特性
1、有序的集合
2、通过偏移来取数据
3、属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
# 请问tu变量中的第一个元素“alex”是否可被修改?
上题中的元组的第三个特点
# 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
type(tu[1][2]["k2"])  -- list
可以
tu[1][2]["k2"].append("Seven")
# 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
type(tu[1][2]["k3"])
tuple     #tuple元组,只读列表不可修改。
不可以

7、字典

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

  • 请循环输出所有的key
  • 请循环输出所有的value
  • 请循环输出所有的key和value
  • 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
  • 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
  • 请在k3对应的值中追加一个元素44,输出修改后的字典
  • 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
# 请循环输出所有的key
dic.keys()
# 请循环输出所有的value
dic.values()
# 请循环输出所有的key和value
dic.items()
# 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
dic["k4"] = "v4"
# 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
dic["k1"] = "alex"
{'k2': 'v2', 'k1': 'alex', 'k3': [11, 22, 33]}
# 请在k3对应的值中追加一个元素44,输出修改后的字典
dic["k3"].append(44)
{'k2': 'v2', 'k1': 'v1', 'k3': [11, 22, 33, 44]}
# 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
dic["k3"].insert(1, 18)
{'k2': 'v2', 'k1': 'v1', 'k3': [11, 18, 22, 33]}

 

8、转换

  • 将字符串s = "alex"转换成列表
  • 将字符串s = "alex"转换成元祖
  • 将列表li = ["alex", "seven"]转换成元组
  • 将元祖tu = ('Alex', "seven")转换成列表
  • 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
# 将字符串s = "alex"转换成列表
list(s)
# 将字符串s = "alex"转换成元祖
tuple(s)
# 将列表li = ["alex", "seven"]转换成元组
tuple(li)
# 将元祖tu = ('Alex', "seven")转换成列表
list(tu)
# 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
dict(zip([i for i in range(10, len(li)+11)], li))

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]
dic = {
    "k1": [],
    "k2": [],
}

for i in li:
    if i >= 66:
        dic["k1"].append(i)
    else:
        dic["k2"].append(i)

print(dic)