这是命令输出:
ab1.1 something
ab2.1 something
ab3.1 something
ab4.1 something
我有以下代码来检查现有条目。
list1 = []
for line in command_output.split("\n"):
if line.stratswith("ab"):
list1.append(line.split()[0])
检查ab4.1是否存在于list1中,如果不打印ab4.1则不存在并使用它。
如果ab4.1已经存在,请检查下一个可用值ab5.1。如果list1中没有,打印ab5.1在list1中不存在并使用它,依此类推。
要检查元素不存在,我将使用以下条件
if "ab4.1" not in list1:
print "Use ab4.1"
else:
check another available value.
请帮我找出另一个可用值。
答案 0 :(得分:1)
你应该循环数字以找到可用的数字。要有效地检查,您应该将这些单词存储在set
:
command_output = """ ab1.1 something
ab2.1 something
ab3.1 something
ab4.1 something"""
first_words = set()
for line in command_output.split("\n"):
first_words.add(line.split()[0])
for j in xrange(4, len(first_words) + 5):
use = 'ab{}.1'.format(j)
if not use in first_words:
break
else:
raise RuntimeError, 'impossible!'
print "using {}".format(use)
如果你愿意,你可以使用理解来缩短这一点:
first_words = {line.split()[0].strip() for line in command_output.split("\n")}
use = 'ab{}.1'.format((j for j in xrange(4, len(first_words) + 5)
if not 'ab{}.1'.format(j) in first_words).next())
print "using {}".format(use)
答案 1 :(得分:0)
如下:
lister = [adit1,adit2,adit3]
count = len(lister) + 1
lister.join('adit' + str(count))
答案 2 :(得分:0)
如果我对你的问题不对,你可以尝试这样: -
ls = ['a','b','c']
list1 = []
for i in ls:
if i not in list1:
print("Use {}".format(i))