[英]Python, toggle variables in a script
我運行了一個腳本,希望在不同的變量之間切換。
假設我有一個網址列表,並且想要連接變量a,b或c中的一個。 我不在乎,但是我希望變量能夠重復,但是列表將運行一次。
v
最終看起來像
url1+string1
url2+string2
url3+string3
url4+string1
url5+string2
etc
def function1(): list = [url1,url2,url3,url4,url5.......] a = 'string1' b = 'string2' c = 'string3' for i in list: v = i+(a then b then c then a then b then c)
我能夠自己使用它,但是我是新手,正在學習,有人對此有更優雅的解決方案嗎?
a = 'a'
b = 'b'
c = 'c'
list1 = ['string1','string2','string3','string4','string5','string6','string7','string8']
list2 = [a, b, c]
c = 0
for i in list1:
if c == len(list2):
c = 0
vv = i + list2[int(c)]
c = c + 1
print vv
它返回我一直在尋找的東西,但很混亂:
您可以利用itertools.cycle來重復其中一個可迭代對象,例如:
from itertools import cycle, izip
list1 = ['string1','string2','string3','string4','string5','string6','string7','string8']
list2 = ['a', 'b', 'c']
for fst, snd in izip(list1, cycle(list2)):
print fst + snd # or whatever
#string1a
#string2b
#string3c
#string4a
#string5b
#string6c
#string7a
#string8b
請注意,雖然cycle
會無限期地重復其元素,但izip
在最短的iterable( list1
) izip
停止。
list = [url1..1]
list2 = [a, b, c]
for i in list:
for a in list2:
v = i+a
編輯
好吧,這更有意義-
這個怎么樣...
set_it = iter(list2)
for i in list:
try:
a = set_it.next()
except:
set_it = iter(list2)
a = set_it.next()
v = i+a
盡管我和您有同感-可能會有一種更流暢的方式來實現這一目標...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.