pythonforlistn
A. 如何统计python list中元素的个数及其位置
l=[1,2,3,4,1]#目标数列
targetnum=1#元素
number=l.count(targetnum)
print('个数:'+str(number))
i=number
index=[]
whilei>0:
forxinrange(len(l)):
ifl[x]==targetnum:
index.append(x+1)
i=i-1
print('位置(第几个):'+str(index))
B. Python for 循环中 in 关键字含义是什么
就是固定的一个格式 for...in循环
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name
执行这段代码,会依次打印names的每一个元素:
Michael
Bob
Tracy
所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum
在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。
C. python中for循环放在后面要怎么理解
i因为闭包,lambda生成之后i引用的就是for循环中的i
建议你看一下python的列表生成器,
f = [(lambda n : i + n) for i in range(10)] 等同于
f=[]
for i in range(10)
f.append(lambda n : i + n)
下面是相关内容
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11):
>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:
>>> L = []>>> for x in range(1, 11):... L.append(x * x)
...>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。
for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
还可以使用两层循环,可以生成全排列:
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
三层和三层以上的循环就很少用到了。
运用列表生成式,可以写出非常简洁的代码。例如,列出当前目录下的所有文件和目录名,可以通过一行代码实现:
>>> import os # 导入os模块,模块的概念后面讲到>>> [d for d in os.listdir('.')] # os.listdir可以列出文件和目录['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']
for循环其实可以同时使用两个甚至多个变量,比如dict的iteritems()可以同时迭代key和value:
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }>>> for k, v in d.iteritems():... print k, '=', v... y = B
x = A
z = C
因此,列表生成式也可以使用两个变量来生成list:
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }>>> [k + '=' + v for k, v in d.iteritems()]
['y=B', 'x=A', 'z=C']
最后把一个list中所有的字符串变成小写:
>>> L = ['Hello', 'World', 'IBM', 'Apple']>>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']
小结
运用列表生成式,可以快速生成list,可以通过一个list推导出另一个list,而代码却十分简洁。
思考:如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:
>>> L = ['Hello', 'World', 18, 'Apple', None]
>>> [s.lower() for s in L]
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>AttributeError: 'int' object has no attribute 'lower'
使用内建的isinstance函数可以判断一个变量是不是字符串:
>>> x = 'abc'>>> y = 123>>> isinstance(x, str)True>>> isinstance(y, str)False
请修改列表生成式,通过添加if语句保证列表生成式能正确地执行。
D. python for循环怎么用
1. for 循环介绍
复制代码代码如下:
>>> li = ['a', 'b', 'e']
>>> for s in li: (1)
... print s (2)
a
e
>>> print "\n".join(li) (3)
a
e
(1) for 循环的语法同 list 解析相似。li 是一个 list,而 s 将从第一个元素开始依次接收每个元素的值。
(2) 像 if 语句或其它任意缩进块,for 循环可以包含任意数目的代码行。
(3) 这就是你以前没看到过 for 循环的原因:至今我们都不需要它。太令人吃惊了,当你想要的只是一个 join 或是 list 解析时,在其它语言中常常需要使用 for 循环。
要做一个 “通常的” (Visual Basic 标准的) 计数 for 循环也非常简单。
2. 简单计数
复制代码代码如下:
>>> for i in range(5): (1)
... print i
0
1
2
3
4
>>> li = ['a', 'b', 'c', 'd', 'e']
>>> for i in range(len(li)): (2)
- 104 -Dive Into Python http://diveintopython.org/
... print li[i]
E. 求助python的for循环
看题看错,我再想
==========
做出,运行环境python 3.2,>3.0可运行
import functools
def occurrences(text1, text2):
#一行流代码,利用字典统键橘计text2中所含text1的数量
s_items=dict(map(lambda i:(i[0],text2.count(i[0])),dict( zip(text1,[0]*len(text1))).items()))
print(s_items) #输出过程 就是你所的“1个'e', 3个'l', 2个'o', 1个'd'”喊亮衫,郑腔这行可删掉
#合并输出统计总和
return functools.rece(lambda x,y:x+y, s_items.values())
print(occurrences('fooled','hello world'))
==================
输出
{'f': 0, 'e': 1, 'd': 1, 'o': 2, 'l': 3}
7
F. 如何用Python编写一个素数环
代码:
n = int(input("请输入最大数n:"))
lists = [[1]]#多个素数环
surplusnum = list(range(1,n+1)) #剩余的数
def sumisprime(x, y):
#x与y之和是否是素数
isprime=True#是否是素数
s = x + y#和
for i in range(2, int(s**0.5)+1):
#素数判定法:从2开始直到此数的开方内的整数都不能被该数整除,则此数为素数
if s%i == 0:#能被整除
isprime = False#不是素数
break#跳出循环
return isprime#返回后否是素数(是:True,否:False)
changelast=lambda listx,addvalue:listx[0:-1]+[addvalue]#改变列表末尾的函数
while len(lists[0] if len(lists) else [0]*n) < n:#当素数环长度小于最大数时
n2 = len(lists[0]) #n2为判定,理论当前列表长度最大值
for listn in lists:#遍历各个可能的素数环
surplusnum=list(range(1,n+1))#默认值
for j in listn:#遍历当前列表的数
surplusnum.remove(j)#剩余的数中删除此数
for i in surplusnum:#遍历剩余的数
if sumisprime(listn[n2-1], i):#最后一个数与它的和是素数
if len(listn) == n2:#如果现在这个列表是没有被添加过的
listn.append(i)#增加在这个列表
else:#如果该列表已经被添加过
lista = changelast(listn, i)#要加入的列表
if lista not in lists:#如果不在这个列表里
lists.append(lista)#添加到另一个列表
for listn in lists.():#防止lists被删造成影响
if len(listn) != n2+1:#如果长度没有达到预期(+1)
lists.remove(listn)#删除该列表(取消此可能性)
if len(lists[0]) == n:#已经符合条件
for listn in lists:#遍历列表,检查首尾
if sumisprime(listn[-1], listn[0]):#如果首尾相加等于素数
print(listn)#环成立,打印出来
break#结束循环
说明:经试验,都没什么问题,n=12也能很快运算完(但我劝你不要打出来),如果你只需要1个素数环,可以把break的缩进调到print(listn)并列。
G. python for 语句怎么写
Python for循环控制语句一般格式及方法 for循环语句是python中的一个循环控制语句,任何有序的序列对象内的元素都可以遍历,比如字符串、列表List、元组等可迭代对像。之前讲过的if语句虽然和for语句用法不同,但可以用在for语句下做条件语句使用。
for语句的基本格式 python for循环的一般格式:第一行是要先定义一个赋值目标(迭代变量),和要遍历(迭代)的对像;首行后面是要执行的语句块。 for 目标 in 对像: print 赋值目标 for循环一个字符串操作方法
>>>a='iplaypython.com'>>>foriina:>>>printiiplaypython.com
如果想让目标在一行输出,可以这样写 >>>print i, i p l a y p y t h o n . c o m 案例中的 i 相当于目标,字符串变量a是遍历(迭代)对像。当运行for循环语句时,每一次迭代时,i 都会从遍历(迭代)对像a中接收一个新值输出。
结束循环后,目标(迭代变量)会保留最后一个值,这里可以先忽略理解,会在else语句中详细来讲解。 for循环列表操作方法
>>>a=[1,2,3,4]>>>foriina:
>>>printi,1234for循环元组赋值
>>>x=[('hello','python'),('very','good')]
>>>for(a,b)inx:
>>>print(a,b)('hello','python')('very','good')
Python for循环控制语句基本组成部分还有break、continue、else
learning=input('DoyouwanttolearnPythonnow(YesorNo):')
a=str(learning)
ifa=='Yes':
print('QQ1129834903')
else:
print('Thanks!!')
H. python有哪些方法可让list中的元素重复N次
from itertools import chain, repeat
from functools import partial, rece
this_is_a_list = [1, 2, 3, 4, 5]
what_you_want = rece(
chain, map(list, map(partial(rece, times=2), this_is_a_list)))
this_is_a_list = [1, 2, 3, 4, 5]
what_you_want = [val for val in this_is_a_list for i in range(2)]
I. python中的for in是什么意思
1、python中的for in是一个语句循环固定格式;
2、Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言;
3、Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
(9)pythonforlistn扩展阅读:
python介绍:
Python的设计目标之一是让代码具备高度的可阅读性。其设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像其他的语法那样经常有特殊情况和意外。
Python采用动态类型系统。在编译的时候,Python不会检查对象是否拥有被调用的方法或者属性,而是直至运行时,才做出检查。所以操作对象时可能会抛出异常。不过,虽然Python采用动态类型系统,其同时也是强类型的。Python禁止没有明确定义的操作,比如数字加字符串。
参考资料来源:网络-Python