[英]add items to a list of a empty list python
不完全确定如何问这个问题,但在这里。
我有一个空白列表
我想将一个元素添加到列表中的列表中。
因此,在我的情况下,我正在查看 apache.conf 以查找任何包含 ServerAlias 的行。
如果找到它,我想将该行添加到子列表的最后一个元素。 所以....
[['ServerAlias test.com']]
如果它在特定虚拟主机中找到另一个条目,它将将该项目添加到同一个子列表中。
[['ServerAlias test.com','ServerAlias neww.com']]
下一次它通过新的虚拟主机。 我想在此列表的末尾添加一个列表并重新开始。 等等...
[['ServerAlias test.com','ServerAlias neww.com'],['ServerAlias cranberry.com']]
我知道我在描述这个方面做得很糟糕。
这是我的非工作代码,因此可能会有所帮助。
def buildvars(fileoutput):
import time
import re
servername=[]
docroot=[]
serveralias=[[]]
vhostdata={}
invhost=0
for line in fileoutput.split('\n'):
if line == '' or re.search('^#',line) or re.search('^\s+#',line): #delete blank lines... I dont care about them
pass
else:
if re.search('^\s*\<VirtualHost', line): #check if we are in a vhost
invhost=1 #mark that we are in a vhost
aliascounter=0
elif re.search('^\s*\</VirtualHost', line):
invhost=0
if aliascounter==0:
serveralias.append('None')
if invhost == 1:
if re.search('^\s*ServerName.*$',line): #if we are in a vhost, check if the line contains servername
servername.append(line.strip()) #then append it to the vhosts list
if re.search('^\s*DocumentRoot.*$',line):
docroot.append(line.strip())
if re.search('^\s*ServerAlias.*$',line):
if not serveralias:
serveralias[0[0]].append(line.strip())
else:
serveralias[-1[0]].append(line.strip())
aliascounter+=1
希望有人知道我在说什么。 圣诞节快乐!
serveralias[0[0]]
不是您想要的表达式。 这意味着“拿的第0项0
,然后使用它作为一键搞定从价值serveralias
”。 每当 Python 尝试计算该表达式时,您都会收到TypeError
,因为 0 不可索引。
如果您确实想获取列表第 0 项的第 0 项,则需要将该表达式替换为serveralias[0][0]
。 但你甚至不想这样做; 您只想附加到serveralias
的第 0 项。
因此,将serveralias[0[0]].append(foo)
替换为serveralias[0].append(foo)
,将serveralias[-1[0]].append(foo)
替换为serveralias[-1].append(foo)
.
不知道代码中是否还有其他问题,我没有仔细看。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.