几道练习题
1. 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
lis = [11,22,33,44,55,66,77,88,99,90] s = [] #定义一个空列表 b = [] for i in lis: #原循环列表值 if i<=66: s.append(i) #如果小于66则用append()方法向s列表中加入该值 else: b.append(i) #如果大于于66则用append()方法向b列表中加入该值 dic = {'k1':s,'k2':b} # 定义一个字典存放 print(dic)
2. 统计s='hello alex alex say hello sb sb'中每个单词的个数
结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
s = 'hello alex alex say hello sb sb' dic = {} lis = s.split(' ')#将字符串变成列表 # print(lis ) for i in lis: #循环列表 num = lis.count(i)#统计每个元素的个数 # print(num) dic[i] = num #赋值给字典增加元素 print(dic)
3. 写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
# 6) 请输出 name 变量对应的值的第 2 个字符?
# 7) 请输出 name 变量对应的值的前 3 个字符?
# 8) 请输出 name 变量对应的值的后 2 个字符?
# 9) 请输出 name 变量对应的值中 “e” 所在索引位置?
# 10) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
name = ' alex' print(name.strip(' ')) print(name.startswith('al')) print(name.endswith('x')) print(name.replace('l','p')) print(name.split('l')) print(name[1]) print(name[0:3]) print(name[4:6]) print(name.find('e')) print(name[0:-1])
4. 假设有一个文件test.txt,内有如下内容
l=[
{'name':'alex','age':84},
{'name':'oldboy','age':73},
{'name':'egon','age':18},
]
with open('test.txt')as f: data = f.read() #打开并读取文件 # print(type(data)) # type:str lis = eval(data) #利用eval方法将str转为list age_sum = lis[0]['age'] + lis[1]['age'] + lis[2]['age'] #取值相加 print(age_sum)
在做第四题时,由于不懂eval的用法,一直出现语法错误(SyntaxError: invalid syntax),在Nick老师的帮助下发现是eval读取不了文件中中括号前面的=,把文件中的 l= 去掉,错误也消失了。