第2章 练习及作业

练习

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

li = ['alex', 'eric', 'rain']
print("_".join(li))

输出:

alex_eric_rain

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

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

输出:

alec
aric

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

li = ['alex', 'eric', 'rain']
# 计算列表长度并输出
print(len(li))  # 输出3

# 列表中追加元素“seven”,并输出添加后的列表
li.append("seven")
print(li)  # 输出:  ['alex', 'eric', 'rain', 'seven']

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

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

# 请删除列表中的元素“eric”,并输出修改后的列表
li.remove("eric")
print(li)  # 输出:['alex', 'rain']

# 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
print(li.pop(2))
print(li)
输出:
rain
['alex', 'eric']


# 请删除列表中的第3个元素,并输出删除元素后的列表
li = ['alex', 'eric', 'rain']
li.append("seven")
li.insert(1, "Tony")
li.pop(3)
print(li)
输出:
['alex', 'Tony', 'eric', 'seven']


# 请删除列表中的第2至4个元素,并输出删除元素后的列表
del li[2:4]
print(li)
输出:
['alex', 'Tony', 'seven']

# 请将列表所有的元素反转,并输出反转后的列表
li.reverse()
print(li)
输出:
['seven', 'rain', 'eric', 'Tony', 'alex']

# 请使用 for、len、range输出列表的索引(没搞懂这个问题)
for i in li:
    print(li.index(i))


# 请使用enumrate输出列表元素和序号(序号从100开始)
for index, i in enumerate(li):
    print(i, index + 100)
输出:
alex 100
Tony 101
eric 102
rain 103
seven 104

# 请使用for循环输出列表的所有元素
for i in li:
    print(i)
输出:
alex
Tony
eric
rain
seven
4. 写代码,有如下列表,请按照功能要求实现每一个功能
li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
# 根据索引输出“Kelly”
print(li[2][1][1])

# 请使用索引找到“all”元素并将其修改为“ALL”,如:li[0][1][9]...
li[3] = "ALL"
print(li)   # 输出:['hello', 'seven', ['mon', ['h', 'kelly'], 'all'], 'ALL', 446]
<br />5. 写代码,有如下元组,请按照功能高要求实现每一个而功能
tu = ('alex', 'eric', 'rain')
# 计算元组的长度并输出
print(len(tu))  # 输出:3

# 获取元组的第2 个元素,并输出
print(tu[2])  # 输出:rain

# 获取元组的第1-2个元素,并输出
print(tu[1:2])  # 输出:('eric',)

# 请使用for输出元组的元素
for i in tu:
    print(i)

# 请使用for、len、range输出元组的索引
for i in range(len(tu)):
    print(i)

# 请使用enumrate输出元组元素和序号(序号从10开始)
for index, i in enumerate(tu):
    print(i, index + 10)
6. 有如下变量,请实现要求的功能
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])
# 讲述元组的特性:
#   元组元素不可变,元组里面元素包含可变元素,则该元素可变

# 请问 tu变量中的第一个元素“alex”是否可被修改?
#   不可被修改

# 请问tu变量中的“k2”对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个“Seven”
#   可以修改。
tu[1][2]["k2"].append("Seven")
print(tu)

# 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个“Seven”
#   元组类型,不可修改
7. 字典
dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# 请循环输出所有的key
for key in dic:
    print(key)

# 请循环输出所有的value
for key in dic:
    print(dic[key])

# 请循环输出所有的key和balue
for key in dic:
    print(key, dic[key])

# 请在字典中添加一个键值对,"k4":"v4" ,输出添加后的字典
dic["k4"] = "v4"
print(dic)

# 请修改字典中"k1"对应的值为"alex" ,输出修改后的字典
dic["k1"] = "alex"
print(dic)

# 请在k3对应的值中追加一个元素44,输出修改后的字典
dic["k3"].append(44)
print(dic)

# 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
dic["k3"].insert(1, 18)
print(dic)
8. 转换
# 将字符串s= "alex" 转换成列表
s = "alex"
s = list(s)
print(s)

# 将字符串s= "alex" 转换成元组
s = "alex"
s = tuple(s)
print(s)

# 将列表li=["alex","seven"]转换成元组
li = ["alex", "seven"]
tu = tuple(li)
print(tu)

# 将元组tu = ("Alex","seven")转换成列表
tu = ("Alex", "seven")
li = list(tu)
print(li)

# 将列表 li=["alex","seven"]转换成字典且字典的key按照10开始向后递增
dic = {}
for index, i in enumerate(li, 10):
    dic[index] = i
print(dic)

作业