Python 如何根据列表中的内容将列表分为2?
所以我得到了这份名单Python 如何根据列表中的内容将列表分为2?,python,list,Python,List,所以我得到了这份名单 list=[“m2010”、“n1950”、“m1834”、“n993”、“m1490”] 我想让代码将列表分成2部分,应该是这样的: list = ["m2010","n1950","m1834","n993","m1490"] m_list = list n_list = [m_list.pop(m_list.index(i)) for i in m_list if i
list=[“m2010”、“n1950”、“m1834”、“n993”、“m1490”]
我想让代码将列表分成2部分,应该是这样的:
list = ["m2010","n1950","m1834","n993","m1490"]
m_list = list
n_list = [m_list.pop(m_list.index(i)) for i in m_list if i.startswith('n')]
n_list=[“n1950”、“n993”]
m_list=[“m2010”、“m1834”、“m1490”]
所有以“n”开头的内容都会出现在
n\u列表中,而“m”则出现在m\u列表中,但我太笨了,无法自己去做……列表理解非常简单。如果要保留原始列表,并制作两份副本:
list = ["m2010", "n1950", "m1834", "n993", "m1490"]
n_list = [item for item in list if item[0] == 'n']
m_list = [item for item in list if item[0] == 'm']
list = ["m2010","n1950","m1834","n993","m1490"]
n_list = [i for i in list if i.startswith("n")]
m_list = [i for i in list if i.startswith('m')]
如果您不需要保留原件,可以执行以下操作:
list = ["m2010","n1950","m1834","n993","m1490"]
m_list = list
n_list = [m_list.pop(m_list.index(i)) for i in m_list if i.startswith('n')]
输出:
>>> m_list
['m2010', 'm1834', 'm1490']
>>> n_list
['n1950', 'n993']
你可以做的一件事是制作一本字典,其中的关键字是单词的第一个字母
list=[“m2010”、“n1950”、“m1834”、“n993”、“m1490”]
def拆分(x):
d=dict()
对于x中的单词:
第一个=单词[0]
如果d.keys()中的第一个:
d[第一个].追加(word)
其他:
d[第一]=[字]
返回d
拆分列表=拆分(列表)
打印(拆分列表['m'])
打印(拆分列表['n'])
请提供您尝试过的代码。使用一个循环,使用startswith()
检查第一个字母,然后将值附加到相应的列表中。欢迎使用堆栈溢出!StackOverflow不是免费的编码服务。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关详细信息,请参阅,并使用:)此代码的问题是,如果m
或n
在字符串中的任何位置,而不仅仅是第一个字母,则会将它们分开。@m-Chen-3谢谢,我没有注意到这个要求。固定的。