python多重for
‘壹’ python 如何写多重循环
流程图已经很详细了,照着把它翻译成Python代码就OK了
A=[[1,4],[2,5],[3,6]]
a=[1,2,3,4,5,6]
B=[[4,1],[1,5],[2,5],[1,7],[7,8]]
list1,list2,list3,list4=[],[],[],[]
foriinB:
ifiinA:
list1.append(i)
elifi[::-1]inA:
list1.append(i)
elifi[0]inaandi[1]ina:
list2.extend(i)
elifi[0]inaandi[1]notina:
list3.extend(i)
elifi[0]notinaandi[1]notina:
list4.extend(i)
print(list1)
print(list2)
print(list3)
print(list4)
‘贰’ Python中的for循环
你好,答案如下所示。
如图所示
return 语句用于函数内部,其目的是退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。不能用于退出循环
希望你能够详细查看。
如果你有不会的,你可以提问
我有时间就会帮你解答。
希望你好好学习。
每一天都过得充实。
‘叁’ python双重for循环在什么时候使用
外循环控制输出的行数,内循环控制输出的1的个数,这样就可以了
前五行用两个for循环输出,后四行用两个for循环输出!
‘肆’ Python中 for 语句的用法
Python 中的 for 语句和 C 或 Pascal 中的略有不同。通常的循环可能会依据一个等差数值步进过程(如 Pascal),或由用户来定义迭代步骤和中止条件(如 C ),Python 的 for 语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代。例如(没有暗指):
>>> # Measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
cat 3
window 6
defenestrate 12
在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。使用切割标识就可以很方便地做到这一点:
>>> for w in words[:]: # Loop over a slice of the entire list.
... if len(w) > 6:
... words.insert(0, w)
...
>>> words
['defenestrate', 'cat', 'window', 'defenestrate'
‘伍’ python 有没有办法简写10层for循环
写代码循环最好不要超过4层,应为超过这个层数,读取来逻辑很容易乱的,一般都最多三层。如果你一定要用这么多层,那一定有其他更优的代码,而且你没发现你好多重复代码吗?光fun()这个函数就写了10次,,for循环10次看起来也那么雷同,仅仅是输入参数不一样而已啊。转换下思路吧。
我这里给你提供个我的想法,不知道是否符合你的要求。具体看截图吧。
‘陆’ 麻烦谁能帮我改写一下这个多重for循环, Python的
a=[]
defknown_edits2(word):
fore1inedits1(word):
fore2inedits1(e1):
ife2inNWORDS:
a.append(e2)
returnset(a)
‘柒’ python三个for循环怎么使用
一般来说,for 循环是利用的遍历来实现的
基础语法是
for i in sequence:
statements(s)
另外一种执行循环的遍历方式是通过索引
例如:
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
第三种方式就是可以和else连用,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行
例如:
for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代
if num%i == 0: # 确定第一个因子
j=num/i # 计算第二个因子
print '%d 等于 %d * %d' % (num,i,j)
break # 跳出当前循环
else: # 循环的 else 部分
print num, '是一个质数'
‘捌’ python如何并列运行两个for循环
需要用到多线程
#!/usr/bin/python3
import _thread
import time
# 为线程定义一个函数
def print_time( threadName, delay):
....count = 0
....while count < 5:
........time.sleep(delay)
........count += 1
........print ("%s: %s" % ( threadName, time.ctime(time.time()) ))
# 创建两个线程
try:
...._thread.start_new_thread( print_time, ("Thread-1", 2, ) )
...._thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
....print ("Error: 无法启动线程")
while 1:
....time.sleep(5)
....print('is main ')
‘玖’ Python中断多重循环的几种思路
事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数、利用笛卡尔积、利用调试。
写成函数
在Python中,函数运行到return这一句就会停止,因此可以利用这一特性,将功能写成函数,终止多重循环,例如
def work(): for i in range(10): for j in range(10): if i+j > 5: return i,jprint work()
利用笛卡尔积
这种方法的思路就是,既然可以跳出单循环,我就将多重循环改写为单循环,这可以利用itertools中的笛卡尔积函数proct,例如
from itertools import proctfor i,j in proct(range(10), range(10)): if i+j > 5: print i,j break
利用调试模式
笛卡尔积的方式很巧妙,也很简洁,但它只能用于每次循环的集合都是独立的情形,假如每层循环都与前一层紧密相关,就不能用这种技巧了。这时候可以用第一种方法,将它写成函数,另外,还可以利用调试模式。这个利用了调试模式中,只要出现报错就退出的原理,它伪装了一个错误出来。
class Found(Exception): passtry: for i in range(10): for j in range(i): #第二重循环跟第一重有关 if i + j > 5: raise Foundexcept Found: print i, j
‘拾’ 请问如何用python让3个for循环按照以下方式运行
用生成器
# 迭代目录下每一个文件
def iter_dir(path):
....for file inos.listdir(path):
........yield ...
# 迭代excel中工作表?行?
def iter_excel(file):
....with xlrd.open_workbook(file) aswb:
........for ....
............yield ...
#同时迭代两个目录中的文件与Excel中某对象
def myiter(path1,path2,excelfile):
....iter1,iter2,iter3=iter_dir(path1),iter_dir(path2),iter_excel(excelfile)
....while True:
........item = [next(iter1),next(iter2),next(iter3)]
........ifitem[0] anditem[1] anditem[2]:
............yielditem
........else:
............raiseStopIteration
#然后就可以用myiter去做循环了:
for file1,file2,xls inmyiter('d:/source','d:/dest','d:/aa.xls'):
....想做了点什么就去做吧