簡體   English   中英

Python,在腳本中切換變量

[英]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

它返回我一直在尋找的東西,但很混亂:

  • 字符串1a
  • 字符串2b
  • string3c
  • 字符串4a
  • 字符串5b
  • 字符串6c
  • 字符串7a
  • 字串8b

您可以利用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( list1izip停止。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM