几道练习题

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= 去掉,错误也消失了。

原文地址:https://www.cnblogs.com/lyyblog0715/p/11437067.html