将一堆不同的项目移动到 python 列表的末尾
Moving a bunch of distinct items to the end of a python list
我有这个 python 列表:
['Intercept', 'a', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]', 'b', 'c', 'd', 'e']
我想要最后的国家项目:
['Intercept', 'a', 'b', 'c', 'd', 'e', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]']
如何实现?
(注意,这些项目是我将用于回归分析的数据框的第 headers 列。列名和奇怪的排序由 patsy.dmatrices 生成。)
我尝试了排序、弹出、删除和列表理解,但无济于事。在这种情况下,我决定不解释我为解决这个问题做了什么,但没有奏效。这是一个简单的问题,与评论员不同,我没有几十年的编程经验。
如果您的逻辑是将任何包含 国家/地区 的项目放在后面,请使用 sorted
和键:
l = ['Intercept', 'a', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]', 'b', 'c', 'd', 'e']
sorted(l, key=lambda x: 'country' in x)
输出:
['Intercept',
'a',
'b',
'c',
'd',
'e',
'country[T.BE]',
'country[T.CY]',
'country[T.DE]']
这里我假设有没有country[
文本就是你要拆分的...那么你可以使用:
li = ['Intercept', 'a', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]', 'b', 'c', 'd', 'e']
[x for x in li if not 'country[' in x] + [x for x in li if 'country[' in x]
我有这个 python 列表:
['Intercept', 'a', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]', 'b', 'c', 'd', 'e']
我想要最后的国家项目:
['Intercept', 'a', 'b', 'c', 'd', 'e', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]']
如何实现?
(注意,这些项目是我将用于回归分析的数据框的第 headers 列。列名和奇怪的排序由 patsy.dmatrices 生成。)
我尝试了排序、弹出、删除和列表理解,但无济于事。在这种情况下,我决定不解释我为解决这个问题做了什么,但没有奏效。这是一个简单的问题,与评论员不同,我没有几十年的编程经验。
如果您的逻辑是将任何包含 国家/地区 的项目放在后面,请使用 sorted
和键:
l = ['Intercept', 'a', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]', 'b', 'c', 'd', 'e']
sorted(l, key=lambda x: 'country' in x)
输出:
['Intercept',
'a',
'b',
'c',
'd',
'e',
'country[T.BE]',
'country[T.CY]',
'country[T.DE]']
这里我假设有没有country[
文本就是你要拆分的...那么你可以使用:
li = ['Intercept', 'a', 'country[T.BE]', 'country[T.CY]', 'country[T.DE]', 'b', 'c', 'd', 'e']
[x for x in li if not 'country[' in x] + [x for x in li if 'country[' in x]