Python,在脚本中切换变量

2024-04-20 13:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本在运行,我想在不同的变量之间切换。你知道吗

假设我有一个url列表,我想连接变量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
  • 字符串3c
  • 字符串4a
  • 字符串5b
  • 字符串6c
  • 弦7a
  • 字符串8b

Tags: 字符串in列表forlistthenlist2string1
2条回答

您可以使用itertools.cycle重复其中一个iterables,例如:

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)上停止。你知道吗

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

虽然我和你的感觉一样-也许有一个更顺利的方法来实现这一点。。。你知道吗

相关问题 更多 >