\# 1.判断一个列表中的数值是否全部小于某个数
num = 10
list1 = \[1, 1, 5, 5, 7, 1\]
# 青铜选手
index = 0
for n in list1:
if n < num :
index += 1
continue
else:
print("青铜选手", False)
break
if index == len(list1):
print("青铜选手", True)
# 王者选手
print("王者选手", all(map(lambda x: x < num, list1)))
青铜选手:最直观的方法,一个个遍历去判断列表中的元素是不是小于某个数值,太简单啦。
王者选手 :利用两个Python内置函数+Python匿名函数,一行代码即可轻松的解决。so easy~
\# 2.对列表中的字符串按照特定要求进行排序
list2 = \["low", "irving", "james", "durant"\]
def first\_c(str1):
return ord(str1\[0\])
# 青铜选手 冒泡排序
for i in range(len(list2)):
for j in range(len(list2) - i - 1):
if len(list2\[j\]) > len(list2\[j+1\]):
list2\[j\], list2\[j+1\] = list2\[j+1\], list2\[j\]
print("青铜选手:", list2)
# 王者选手
print("王者选手:", sorted(list2, key=len))
print("按首字母排序:", sorted(list2, key=first\_c))
青铜选手:列表中的字符串排序算法就可以搞定啦,例如最经典的冒泡排序,肿么样?
王者选手:利用内置函数sorted一行代码就解决。不仅如此,对于排序的关键词指定方面,我还能自己设置排序的函数,例如上面的firstC函数,按照字符串的首字母进行排序。羡慕不?
\# 3.按照键或者数值对字典进行排序
dict3 = {"low" : 3, "irving": 6, "james": 1, "durant": 4}
# 青铜选手
list3 = sorted(dict3.items(), key=lambda x: x\[0\])
dict3\_keys = {i:j for i, j in list3}
print("青铜选手 按键排序:", dict3\_keys)
list3 = sorted(dict3.items(), key=lambda x: x\[1\])
dict3\_values = {i:j for i, j in list3}
print("青铜选手按值排序:", dict3\_values)
#王者选手
dict3\_keys = {key: dict3\[key\] for key in sorted(dict3)}
print("王者选手按键排序:", dict3\_keys)
dict3\_values = {key: dict3\[key\] for key in sorted(dict3, key=dict3.get)}
print("王者选手按值排序:", dict3\_values)
青铜选手:这次我用了sorted内置函数进行排序后,再转换成字典形式。两行代码搞定!
王者选手:青铜选手你的方法在转换的过程中会造成空间资源浪费。我直接利用了对于键或者值进行排序,再利用排序后的键或者是值来构造最终的字典,且程序简洁。
\# 4.将列表中的数字转换成字符串
list4 = \[1, 3, 5, 7, 12, 6\]
#青铜选手 直接转换
list\_str4 = \[str(i) for i in list4\]
print("青铜选手:", list\_str4)
#王者选手 利用map函数
list\_str4 = list(map(str, list4))
print("王者选手:", list\_str4)
青铜选手:我用的是列表解析方案,通过循环迭代的方式产生新的列表。这次够简洁,也不浪费空间了吧~~
王者选手:我利用了map内置函数,将列表中的数字转换为字符串。这次咱们算打平吧!
\# 5.判断列表中的元素是否都属于一个类型
list5 = \['1', '3', '5', '7', '12', '6'\]
# 青铜选手 逐一判断每个元素
index = 0
for element in list5:
if not isinstance(element, str):
print("青铜选手:", False)
break
index += 1
if index == len(list5):
print("青铜选手:", True)
# 王者选手
def checkStr(x):
if isinstance(x, str):
return True
else:
return False
print("王者选手:", all(list(map(checkStr, list5))))
青铜选手:这次我用的方法是逐个的判断列表中的每一个元素,如果有任一个元素不是字符串,则输出False。当全部循环结束后,如果index数值等于列表总长度,则输出True。
王者选手:利用map函数来判断列表中的每个元素是否满足函数checkStr。利用all函数来得到最终的结果。这不是更简单?
\# 6.反转列表
list6 = \['1', '3', '5', '7', '12', '6'\]
# 青铜选手
new\_list6 = \[\]
for i in range(len(list6)-1, -1, -1):
new\_list6.append(list6\[i\])
print("青铜选手:", new\_list6)
# 王者选手
print("王者选手:", list6\[::-1\])
list6.reverse()
print("王者选手:", list6)
青铜选手:创建一个新的列表对象,并将list6中的元素按照从后向前的方式添加到新列表中。
王者选手:我有两种方式喔,第一种方式是利用列表切片的方法,获取反转的列表。第二种方式是利用列表的reverse函数,但是reverse函数只能在原列表中进行修改,不能创建一个新的列表。Yeah~~
\# 7.从可迭代对象中随机选择一个元素
import random
random.seed(0)
list7 = \['6', '12', '7', '5', '3', '1'\]
tuple7 = ("low", "irving", "james", "durant")
print(random.choice(list7))
print(random.choices(tuple7, k=3))
print(random.sample(list7, k=2))
青铜选手:我不会,交白卷了只能。。。
王者选手:小青同学,搬好凳子认真听讲吧!在Python中进行随机数值的选择,可以利用Python的内置库random,上面函数中,choice函数是从列表中随机选择一个数值,choices函数又放回的选择k个数值,sample则是无放回的选择k个数值。一共三张姿势喔,学会了吗?
8.怎么利用列表创建字典
\# 8.利用列表创建字典
list8\_1 = \["low", "irving", "james", "durant"\]
list8\_2 = \[3, 6, 7, 2\]
list8\_3 = \[5, 8, 1, 3\]
#青铜选手
dict8 = {}
for i in range(len(list8\_1)):
dict8\[list8\_1\[i\]\] = list8\_2\[i\]
print("青铜选手:", dict8)
#王者选手
dict8 = dict(zip(list8\_1, list8\_2))
dict8\_2 = dict(zip(list8\_1, zip(list8\_2, list8\_3)))
print("王者选手:", dict8)
print("王者选手:", dict8\_2)
青铜选手:用列表创建字典,再利用for循环的方式,在字典中创建键值对的item。这次我会!
王者选手:利用zip内置函数,创建一个zip对象,并利用dict函数将zip对象转化为字典,一行代码搞定。完胜!
\# 9.筛选出以元音字母开头的字符串
list9 = \["low", "irving", "james", "durant", "allen"\]
#青铜选手
new\_list9 = \[\]
for name in list9:
if name\[0\].lower() in "aeiou":
new\_list9.append(name)
print("青铜选手:", new\_list9)
print("王者选手:", list(filter(lambda x: x.lower().startswith(('a', 'e', 'i', 'o', 'u')), list9)))
print("王者选手:", \[name for name in list9 if name\[0\] in 'aeiouAEIOU'\])
青铜选手:对于list9中的每个字符串元素进行判断处理,如果字符串的第一个字母是原因字母,则将该字符串添加到新的列表new_list9中。
王者选手:直接利用列表解析或者是通过filter函数来过滤list9中满足匿名函数的元素,相比于map函数,filter函数能够直接过滤出来满足条件的元素值。这不是更简单嘛~~
\# 10.创建一个计数字典
from collections import Counter
list10 = \["low", "irving", "james", "durant", "allen", "irving", "james", "allen", "durant", "durant"\]
#青铜选手
dict10 = {name:0 for name in set(list10)}
for name in list10:
if name in dict10:
dict10\[name\] += 1
else:
dict10\[name\] = 1
print("青铜选手:", dict10)
# 王者选手
print("王者选手:", dict(Counter(list10)))
青铜选手:首先创建一个字典,字典的键包含了list10中所有出现过的元素,然后逐一统计列表中元素出现的次数。这不就行了?
王者选手:借用collections库中的Counter类,直接统计list10中元素的个数,然后利用dict函数来讲Counter对象转化为字典对象。
如果本篇博客有任何错误,请批评指教,不胜感激 !
小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。
保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
如果你是准备学习Python或者正在学习,下面这些你应该能用得上:
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取(安全链接,放心点击)