77 循环输出列表
s = ['man','woman','girl','boy','sister']
for i in range(len(s)):
print(s[i])
man
woman
girl
boy
sister
78找到年龄最大的人,并输出。请找出程序中有什么问题。
#如果是列表:
l1 = [1,2,3,4]
print(max(l1))
#如果是字典法一:
dict1 = {"zhagn":18,"li":20,"wang":22}
value = dict1.values()
print(max(value))
法二:
person = {"li": 18, "wang": 50, "zhang": 20, "sun": 22}
m = 'li'
for key in person.keys():
if person[m] < person[key]:
m = key
print(f'{m}\t{person[m]}')
#字符串排序。
str1 = input('input string:')
str2 = input('input string:')
str3 = input('input string:')
print(str1, str2, str3)
if str1 > str2:
str1, str2 = str2, str1
if str1 > str3:
str1, str3 = str3, str1
if str2 > str3:
str2, str3 = str3, str2
print('after being sorted.')
print(str1, str2, str3)
#字典法二输出
dict_keys(['zhagn', 'li', 'wang'])
dict_values([18, 20, 22])
22
字典的输出
#字典:{key:vlaue},key必须是字符串 value可以重复
#字典输出的时候,写输出key即可
person = {"li": 18, "wang": 50, "zhang": 20, "sun": 22}
for key in person.keys():
print(person[key])
#循环的时候不能修改列表的元素个数。
不要在遍历列表的时候对列表进行操作
不要在遍历列表的时候,对列表进行修改
for 循环其实是取的下标,要递增或递减
直接.remove导致后面元素下表前移
remove会改变list的index,所以不推荐遍历的时候修改列表
删掉会指针异常
错误的:
iplist = [11, 12, 13, 14, 15, 19, 85, 105, 148, 15]
for x in iplist:
print('---',x)
if x > 14:
# print(x)
iplist.remove(x)
print(iplist)
--- 11
--- 12
--- 13
--- 14
--- 15
--- 85
--- 148
[11, 12, 13, 14, 19, 105, 15]
错误原因:并没有把>14的所有元素都remove掉。
正确的:
iplist = [11, 12, 13, 14, 15, 19, 85, 105, 148, 15]
for x in iplist:
print('---',x)
a = []
for i in range(len(iplist)):
if iplist[i] > 14:
a.append(iplist[i])
print(a)
--- 11
--- 12
--- 13
--- 14
--- 15
--- 19
--- 85
--- 105
--- 148
--- 15
[15, 19, 85, 105, 148, 15]