【问题标题】:split and append every 2nd comma to array拆分并将每个第二个逗号附加到数组
【发布时间】:2017-11-19 17:57:24
【问题描述】:

我试图用每个第二个逗号分割一个字符串,我读到最好的方法是用每个逗号分割,然后用这个代码所做的每个第二个逗号重新加入它们:

    ARGVLIST = sys.argv[2].split(",")
    ARGVTHREAD = []
    ARGVTHREAD.append([",".join(ARGVLIST[i:i+2]) for i in range(0, len(ARGVLIST), 2)])

但它只将 1 项附加到数组中:

['8.8.8.8,GOOGLEDNS', '8.8.8.8,GOOGLEDNS', '10.10.10.10,TEST1', '20.20.20.20,TEST2']

而且我需要能够为该数组中的每个项目创建一个线程,因此需要将它们拆分为单独的项目,但我不知道该怎么做。

该项目是公开的,可以看到 @https://github.com/BIGPHATTOBY/fineping 抱歉,如果这违反了规则,只是让人们知道这与工作无关,而是个人培训

示例输入字符串:python3fineping.py -S 8.8.8.8,GOOGLEDNS,8.8.8.8,TEST1,10.10.10.10,TEST2,20.20.20.20,TOBIAS

【问题讨论】:

  • 你能举一个输入字符串的例子吗?
  • 是的,抱歉,现在有问题了
  • 我认为我的回答会根据您的需求而起作用。

标签: python arrays python-3.x for-loop join


【解决方案1】:

来试试这个。如您所知,如果您的参数列表非常大,zip 会很慢,但在项目

def split_second_comma(s):
    arr = s.split(',')
    arr = [x.strip() for x in arr]

    new_arr = []
    for x,y in zip(arr[0::2], arr[1::2]):
        new_arr.append(x + ', ' + y)

    print(new_arr)

【讨论】:

  • 干杯,它就像一个魅力,如果你有时间,你能解释一下你的方法和我的方法之间的区别,所以我也知道它为什么有效
  • 是的,唯一的细微差别是您唯一的做法range(0, len(ARGVLIST), 2),这将为您提供所有偶数元素,但不会提供赔率。这就是为什么我对zip(arr[0::2], arr[1::2]) 进行压缩以获取偶数和奇数元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 2013-12-16
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多