如何更改Django默认主页为自定义主页,更改Djago默认主页为自定义主页,这是开始网页的第一步。......
自学Python-语句之列表推导式
列表推导式,有的资料也叫列表解析表达式;是对其他的序列(例如字符串,列表,元组)中的元素重新计算生成一个新的列表。像是for语句的简写形式;
2自学Python-for循环
1,简单结构:
最简单的结构有三部分组成:
1)一个表达式;
2)for循环语句的第一行;
3)一对中括号,包含1和2;(预示生成一个列表)
[ 1)表达式 2)for 循环语句的第一行]
如:[x**2 for x in range(0,10)]
先举例分析运行过程:
例如:#将list_a=[1,2,3,4,5]元素扩大10倍,生成新的列表。
如果按传统的for循环来写:
--------------------
list_a=[1,2,3,4,5]
list_b=[]
for x in list_a:
list_b.append(x*10)
print(list_b)
输出:[10, 20, 30, 40, 50]
--------------------
用列表推导式来写:
--------------------
list_a=[1,2,3,4,5]
list_b=[x*10 for x in list_a]
print(list_a)
输出:[10, 20, 30, 40, 50]
--------------------
比较看出,列表推导式像是for循环语句;
可以简单的理解为:
每次取出列表中的元素赋值给x,和10相乘,计算后生成新的元素。新元素组成新列表;
根据这个思路再写个例子;
--------------------
items=['经验','知道','新闻','百科','贴吧']
bd_items=['百度-' x for x in items]
print(bd_items)
输出:['百度-经验', '百度-知道', '百度-新闻', '百度-百科', '百度-贴吧']
--------------------
每次取出列表中的一个元素赋值给x和字符串‘百度-’搭配,组成一个新的列表。
貌似和for循环语句没什么区别。
2.和if搭配结构:
在简单结构的基础上加上条件语句if
[ 1.表达式 2.for 循环语句的第一行 3.if条件语句的第一行]
说到if语句,就会想到判断,过滤,筛选;找出符合你规定条件的数据;
1自学Python条件语句
还是先说个例子来分析:
#筛选出1-100之间的所有11的倍数的数;
--------------------
numList=[x for x in range(1,100) if x==0]
print(numList)
--------------------
#for循环写法:
--------------------
numList=[]
for x in range(1,100):
if x==0:
numList.append(x)
print(numList)
输出:[11, 22, 33, 44, 55, 66, 77, 88, 99]
--------------------
比较可以看出,和基本结构的运行方法没什么区别,只是在for后面加了个if判断。
#筛选姓刘的人员:
--------------------
nameList=['诸葛亮','刘备','关羽','张飞','刘易斯','刘德华','张学友','刘欢','刘翔','齐德隆','刘亦菲','齐东强']
list_Liu=[x for x in nameList if x[0]=='刘']
print(list_Liu)
输出:['刘备', '刘易斯', '刘德华', '刘欢', '刘翔', '刘亦菲']
--------------------
#比较用for循环的写法:
--------------------
nameList=['诸葛亮','刘备','关羽','张飞','刘易斯','刘德华','张学友','刘欢','刘翔','齐德隆','刘亦菲','齐东强']
list_liu=[]
for x in nameList:
if x[0]=='刘':
list_liu.append(x)
print(list_liu)
输出:['刘备', '刘易斯', '刘德华', '刘欢', '刘翔', '刘亦菲']
--------------------
可以看出,用列表推导式,更加简洁。
3.for,for 嵌套结构
写法收集到两种顺序不同的写法:
第一种是:[ 表达式 外层的for 循环语句的第一行 内层for 循环语句的第一行]
外循环在前,内循环在后。
第二种是:[ [表达式 内层的for 循环语句的第一行] 外层for 循环语句的第一行]
显然是列表套列表;把内层循环在前做为表达式来使用,外层循环再后。
#让列表a的每一个数据都和列表b的数据合并。
--------------------
listA=[1,2,3]
listB=[15,16,17]
listC=[]
for a in listA:
for b in listB:
listC.append((a,b))
listD=[(a,b) for a in listA for b in listB]
print('C:',listC)
print('D:',listD)
输出:
C: [(1, 15), (1, 16), (1, 17), (2, 15), (2, 16), (2, 17), (3, 15), (3, 16), (3, 17)]
D: [(1, 15), (1, 16), (1, 17), (2, 15), (2, 16), (2, 17), (3, 15), (3, 16), (3, 17)]
-------------------
循环嵌套经典的例子就是99乘法表,那么用列表推导式怎么写呢:
99乘法表最少三种写法:while,for,列表推导式。
while循环;
-------------------
a=1
while a 10:
b = 1
while b =a:
print("%sx%s=%-3s"%(b,a,a*b),end="\t")
b = 1
a =1
print()
输出:(看图片)
-------------------
for循环写法:
-------------------
for x in range(1, 10):
for y in range(1, x 1):
print("%sx%s=%-3s" % (y, x, x * y), end='')
print()
输出:(看图片)
-------------------
列表推导式写法:
-------------------
table='\r\n'.join(['\t'.join(["%sx%s=%s"%(y,x,x*y) for y in range(1,x 1)]) for x in range(1,10)])
print(table)
输出:(看图片)
-------------------
这里字符串函数join()用于将列表中的元素连接成一个,去除多余的字符。
\r\n换行;\t是table键。具体看下图。
总结:
综上所述:列表推导式的方法更加精简,但是对于初学者来说,不太好掌握,比如,让我写,我就得先拿for循环来试试。然后再根据for循环来完成,应该跟掌握的熟练度有关。如果有更多if,和for,那就彻底蒙圈了。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: python
相关文章
- 详细阅读
-
python中关于单/双引号和转义引号的区别详细阅读
python中关于单/双引号和转义引号的区别,ytho中单/双引号的作用是将引号中间的符号以字符串的形式传递,而在ytho中它们两个的功能是一样的,只不过在遇到转义引号的时候,两者的使用才有所区别,现......
2023-03-16 349 python
- 详细阅读