为什么list()和[]组合字符串的方式不同?

时间:2019-05-18 17:44:52

标签: python list

这是下面代码的输出

我正在使用list()和[]组合从列名中选择的字符串。然后我注意到一些特殊的行为(如下所示)。有人可以解释为什么Python用不同的方式解释list()+ []或[] + list()吗?

我试图搜索list()和[]之间的区别,但是没有一个答案解决了我的困惑。

# below is the output for census_df.columns
Index(['SUMLEV', 'REGION', 'DIVISION', 'STATE', 'COUNTY', 'STNAME', 'CTYNAME',
       'CENSUS2010POP', 'ESTIMATESBASE2010', 'POPESTIMATE2010',
       'POPESTIMATE2011', 'POPESTIMATE2012', 'POPESTIMATE2013',
       'POPESTIMATE2014', 'POPESTIMATE2015', 'NPOPCHG_2010', 'NPOPCHG_2011',
       'NPOPCHG_2012', 'NPOPCHG_2013', 'NPOPCHG_2014', 'NPOPCHG_2015',
       'BIRTHS2010', 'BIRTHS2011', 'BIRTHS2012', 'BIRTHS2013', 'BIRTHS2014',
       'BIRTHS2015', 'DEATHS2010', 'DEATHS2011', 'DEATHS2012', 'DEATHS2013',
       'DEATHS2014', 'DEATHS2015', 'NATURALINC2010', 'NATURALINC2011',
       'NATURALINC2012', 'NATURALINC2013', 'NATURALINC2014', 'NATURALINC2015'],
      dtype='object')



print(list(census_df.columns[9:15]) + [census_df.columns[6]])
print("\n")
print(list(census_df.columns[9:15]) + list(census_df.columns[6]))
print("\n")
print([census_df.columns[9:15]] + [census_df.columns[6]])
print("\n")
print([census_df.columns[6]] + list(census_df.columns[9:15]))
print("\n")
print(list(census_df.columns[6]) + list(census_df.columns[9:15]))
print("\n")
print(list(census_df.columns[6]) + [census_df.columns[9:15]])

我希望它们是[“ col6”,“ col9” ...“ col14”]。相反,有时是:

[“ c”,“ o”,“ l”,“ 6”,“ col9”,“ col10” ...“ col14”]或 [“ c”,“ o”,“ l”,“ 6”,index(... dtype =“ object”)]

1 个答案:

答案 0 :(得分:7)

list()将所有可迭代对象转换为列表。字符串是可迭代的:

>>> x = 'test'
>>> [x]
['test']
>>> list(x)
['t', 'e', 's', 't']

,同时[x]语法创建带有单个元素x的文字列表。这些不是等效的,甚至不是接近的。