Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向单行列表中添加特定列(可能有点基本)_Python_List_2d_Append - Fatal编程技术网

Python 向单行列表中添加特定列(可能有点基本)

Python 向单行列表中添加特定列(可能有点基本),python,list,2d,append,Python,List,2d,Append,我正在设计一个密码恢复程序,我想使它正确/模块化,足以插入到其他程序中,所以我试图避免丑陋的黑客攻击 下面是一个摘要:我有一个带字符串的列表 myString = "Hey what's up?" myString2DList = [ myString, ] 现在我有一个2D列表,其中只有一行。我只想在用户指定的索引下添加列 因此,可以说有3个索引对应于一列 like:0,4,6h,w,a 现在我只想动态地向这些列添加任何内容。我做过搜索,但没有什么帮助。我确实看到了一些有希望

我正在设计一个密码恢复程序,我想使它正确/模块化,足以插入到其他程序中,所以我试图避免丑陋的黑客攻击

下面是一个摘要:我有一个带字符串的列表

myString = "Hey what's up?"
myString2DList = [
    myString,
    ]
现在我有一个2D列表,其中只有一行。我只想在用户指定的索引下添加列

因此,可以说有3个索引对应于一列 like:0,4,6h,w,a 现在我只想动态地向这些列添加任何内容。我做过搜索,但没有什么帮助。我确实看到了一些有希望的帖子,其中提到Dict数据类型可能更适合在这里使用,我觉得完全卡住了

编辑/澄清:

基本上,第一行将表示用户希望恢复的密码。假设用户不能记住密码,但至少能记住几个字符。我希望列代表每个字符的每个可能的备选方案,然后我的脚本将强制使用带有约束的密码。我已经编写了一个丑陋的脚本,做了同样的事情,我只需要为每个密码重新编码,我想让它动态,因为它真的很方便


谢谢

如果我正确理解你的问题。看看这个,看看它是否适合你

str_1 = 'Hey What\'s Up?'
str_2 = 'Hey, Not Much!'
my2dlist = [[str_1]] #Note the double brackets
my2dlist.append([str_2]) # Note that you are appending a List to the other list.
print my2dlist # Yields: [["Hey What's Up?"], ['Hey, Not Much!']]
my2dlist[0].append(-1)
print my2dlist # Yields: [["Hey What's Up?", -1], ['Hey, Not Much!']]
注意,列表列表使您能够使用需要关联的任何python类型。如果你需要更多的解释,让我知道,我可以更详细


干杯

如果我正确理解你的问题。看看这个,看看它是否适合你

str_1 = 'Hey What\'s Up?'
str_2 = 'Hey, Not Much!'
my2dlist = [[str_1]] #Note the double brackets
my2dlist.append([str_2]) # Note that you are appending a List to the other list.
print my2dlist # Yields: [["Hey What's Up?"], ['Hey, Not Much!']]
my2dlist[0].append(-1)
print my2dlist # Yields: [["Hey What's Up?", -1], ['Hey, Not Much!']]
注意,列表列表使您能够使用需要关联的任何python类型。如果你需要更多的解释,让我知道,我可以更详细


干杯

我现在还不清楚你想做什么。Python最接近2D数组的是列表列表。不过,您现在拥有的是单个列表,而不是二维列表。二维列表如下所示,用更有意义的名称替换这些名称:

list_of_lists = [[header0,  header1,  header2 ],
                 [r1c0data, r1c1data, r1c2data],
                 [r2c0data, r2c1data, r2c2data]]
要追加一行,只需添加一个列表,即列表中的列表。追加新列表。要附加一列,您必须在教学列表的末尾添加一项,如下所示:

c4data = [header3, r1c3data, r2c3data]
for i, row in enumerate(list_of_lists):
    row.append(c4data[i])
如果您确实想要二维阵列,那么最好使用

但您是否希望按列标题对单个行进行索引?如果是这样,您最好使用一系列字典:

list_of_dicts = [{'column0':r0c0data, 'column1':r0c1data, 'column2':r0c2data},
                 {'column0':r1c0data, 'column1':r1c1data, 'column2':r1c2data}]
您甚至可以将其缩减为一个dict,使用元组来处理单个元素:

tuple_key_dict = {(0, 0):r0c0data, (0, 1):r0c1data, (0, 2):r0c2data,
                  (0, 1):r0c1data, (1, 1):r1c1data, (1, 2):r1c2data}
每种方法都适用于不同的任务。您甚至可能需要使用数据库。我们需要更多地了解你在做什么来告诉你

好的,要做你想做的事,根本不需要列表。只需创建一个字符串列表,每个字符串表示密码字符串对应索引处的可能字符。例如,假设用户使用的密码是“appletree”的德语和英语单词的组合,但不记得是哪种组合:

>>> char_list = [''.join(set((a, b))) for a, b in zip('apfelbaum', 'appletree')]
>>> char_list
['a', 'p', 'pf', 'el', 'el', 'bt', 'ar', 'eu', 'em']
char_列表现在包含每个索引中所有可能的字母。要生成所有可能的密码,只需这些字符串的笛卡尔乘积:

>>> import itertools
>>> password_list = [''.join(tup) for tup in itertools.product(*char_list)]
>>> print 'appletree' in password_list
True
>>> print 'apfelbaum' in password_list
True
>>> print 'apfletrum' in password_list
True

我现在还不清楚你想干什么。Python最接近2D数组的是列表列表。不过,您现在拥有的是单个列表,而不是二维列表。二维列表如下所示,用更有意义的名称替换这些名称:

list_of_lists = [[header0,  header1,  header2 ],
                 [r1c0data, r1c1data, r1c2data],
                 [r2c0data, r2c1data, r2c2data]]
要追加一行,只需添加一个列表,即列表中的列表。追加新列表。要附加一列,您必须在教学列表的末尾添加一项,如下所示:

c4data = [header3, r1c3data, r2c3data]
for i, row in enumerate(list_of_lists):
    row.append(c4data[i])
如果您确实想要二维阵列,那么最好使用

但您是否希望按列标题对单个行进行索引?如果是这样,您最好使用一系列字典:

list_of_dicts = [{'column0':r0c0data, 'column1':r0c1data, 'column2':r0c2data},
                 {'column0':r1c0data, 'column1':r1c1data, 'column2':r1c2data}]
您甚至可以将其缩减为一个dict,使用元组来处理单个元素:

tuple_key_dict = {(0, 0):r0c0data, (0, 1):r0c1data, (0, 2):r0c2data,
                  (0, 1):r0c1data, (1, 1):r1c1data, (1, 2):r1c2data}
每种方法都适用于不同的任务。您甚至可能需要使用数据库。我们需要更多地了解你在做什么来告诉你

好的,要做你想做的事,根本不需要列表。只需创建一个字符串列表,每个字符串表示密码字符串对应索引处的可能字符。例如,假设用户使用的密码是“appletree”的德语和英语单词的组合,但不记得是哪种组合:

>>> char_list = [''.join(set((a, b))) for a, b in zip('apfelbaum', 'appletree')]
>>> char_list
['a', 'p', 'pf', 'el', 'el', 'bt', 'ar', 'eu', 'em']
char_列表现在包含每个索引中所有可能的字母。要生成所有可能的密码,只需这些字符串的笛卡尔乘积:

>>> import itertools
>>> password_list = [''.join(tup) for tup in itertools.product(*char_list)]
>>> print 'appletree' in password_list
True
>>> print 'apfelbaum' in password_list
True
>>> print 'apfletrum' in password_list
True

+1这是我在回答中提到的更详细的内容。我将其编辑到我的帖子中,但这里有另一个副本:基本上,第一行将表示用户希望恢复的密码。假设用户不能记住密码,但至少能记住几个字符。我想要这个专栏
s来表示每个字符的每个可能替代项,然后我的脚本将强制使用带有约束的密码。我已经编写了一个丑陋的脚本,可以做同样的事情,我只需要为每个新密码重新编码,我想让它变得动态,因为它真的很方便,其他人也可以使用它。@Dave,我的建议见上文。非常感谢你的综合帖子,列表的列表让我有点头疼。天哪,zip功能正是医生要求的=D+1这是我在回答中提到的更详细的内容。我将其编辑到我的帖子中,但这里有另一个副本:基本上,第一行将表示用户希望恢复的密码。假设用户不能记住密码,但至少能记住几个字符。我希望列代表每个字符的每个可能的备选方案,然后我的脚本将强制使用带有约束的密码。我已经编写了一个丑陋的脚本,可以做同样的事情,我只需要为每个新密码重新编码,我想让它变得动态,因为它真的很方便,其他人也可以使用它。@Dave,我的建议见上文。非常感谢你的综合帖子,列表的列表让我有点头疼。天哪,zip功能正是医生要求的=d语句my2dlist[0].append-1正是我想要的,然而,senderle采取了一种完全不同的方法,效果也一样好。虽然你也教了我一些新东西,我很感激,谢谢!语句my2dlist[0].append-1正是我想要的,然而,senderle采取了一种完全不同的方法,效果也一样好。虽然你也教了我一些新东西,我很感激,谢谢!