我试图理解是否有必要获取列表的内容并将其附加到另一个列表.
我通过循环函数创建了第一个列表,它将从文件中获取特定行并将它们保存在列表中.
然后使用第二个列表来保存这些行,并在另一个文件上开始一个新的循环.
我的想法是在for循环完成后获取列表,将其转储到第二个列表中,然后开始一个新的循环,将第一个列表的内容再次转储到第二个列表中但附加它,所以第二个列表将是在我的循环中创建的所有较小列表文件的总和.只有满足某些条件时才必须附加该列表.
它看起来像这样的东西:
# This is done for each log in my directory, i have a loop running
for logs in mydir:
for line in mylog:
#...if the conditions are met
list1.append(line)
for item in list1:
if "string" in item: #if somewhere in the list1 i have a match for a string
list2.append(list1) # append every line in list1 to list2
del list1 [:] # delete the content of the list1
break
else:
del list1 [:] # delete …
Run Code Online (Sandbox Code Playgroud) 试图找出如何写一个if循环来检查一行是否为空.
该文件有很多字符串,其中一个是一个空白行与其他语句分开(不是"";是一个回车符后跟另一个回车符我认为)
new statement
asdasdasd
asdasdasdasd
new statement
asdasdasdasd
asdasdasdasd
Run Code Online (Sandbox Code Playgroud)
由于我正在使用文件输入模块,有没有办法检查一行是否为空?
使用此代码它似乎工作,谢谢大家!
for line in x:
if line == '\n':
print "found an end of line"
x.close()
Run Code Online (Sandbox Code Playgroud) 可能重复:
检查另一个字符串中是否存在多个字符串
我试图找出是否有一个很好的和干净的方式来测试3个不同的字符串.
基本上我是使用循环循环一个文件for
; 然后我必须检查它是否包含我在列表中设置的3个字符串中的1个.
到目前为止,我已经找到了多个if条件检查,但它感觉不是真的优雅和高效:
for line in file
if "string1" in line or "string2" in line or "string3" in line:
print "found the string"
Run Code Online (Sandbox Code Playgroud)
我在想,如创建一个包含列表string1
,string2
和string3
,并检查是否这些被包含在该行,但它似乎并不认为我可以比较列表,而无需显式循环槽列表,在这种情况下,我基本上与我在上面写的多个if语句中的条件相同.
是否有任何智能方法可以检查多个字符串而无需编写long if语句或循环通过列表的元素?
我不完全清楚(除了代码的可读性之外),为什么要在创建属性时创建带下划线前缀的内部变量.
由于所有内容都是在内部处理的,为什么还要这样做,因为我们不向getter和setter添加任何代码?
即使我必须向getter或setter添加一些代码,我也不明白为什么我不能只检查myvar而不是检查_myvar然后将其分配给myvar.
任何人都可以给我一些解释,除了"这样做是因为这是每个人都做的事情吗?" 我想了解这种做法背后的全部原因(即使没有getter和setter的自定义代码,这似乎也很常见).
谢谢!
我在列表中寻找一个特定的字符串; 此字符串是较长字符串的一部分.
基本上我循环通过文本文件并将每个字符串添加到列表的不同元素中.现在我的目标是扫描整个列表以查明是否有任何元素字符串包含特定字符串.
源文件的示例:
asfasdasdasd
asdasdasdasdasd mystring asdasdasdasd
asdasdasdasdasdasdadasdasdasdas
Run Code Online (Sandbox Code Playgroud)
现在假设3个字符串中的每一个都在列表的元素中; 并且你想知道列表中是否有任何元素中的字符串"my string"(我不需要知道它在哪里,或者列表中出现了多少字符串).我试图用它来解决它,但它似乎没有发现任何事件
work_list=["asfasdasdasd", "asdasdasdasd my string asdasdasdasd", "asdadadasdasdasdas"]
has_string=False
for item in work_list:
if "mystring" in work_list:
has_string=True
print "***Has string TRUE*****"
print " \n".join(work_list)
Run Code Online (Sandbox Code Playgroud)
输出将只是列表,bool has_string保持为False
我错过了什么或者以错误的方式使用in语句?