我想分割这些字符串
'foofo21'
'bar432'
'foobar12345'
Run Code Online (Sandbox Code Playgroud)
成
['foofo', '21']
['bar', '432']
['foobar', '12345']
Run Code Online (Sandbox Code Playgroud)
有人知道在python中执行此操作的简单方法吗?
这是一个看似简单的问题,但事实证明有点令人烦恼。我有一个染色体列表(有 23 条染色体 - 染色体 1 到 21,然后是染色体 X 和染色体 Y),如下所示:
['chr11','chr14','chr16','chr13','chr4','chr13','chr2','chr1','chr2','chr3','chr14','chrX',]
我想按以下顺序对其进行排序:
['chr1', 'chr2','chr2','chr3','chr4','chr11','chr13','chr13', 'chr14','chr14','chr16','chrX']
然而,由于 python 的字典顺序性质,sort它会进行排序chr1, chr10, chr11, chr12...chr2,等,因为我有 X 染色体,按整数值排序似乎也不是一个选项。我可能需要指定一个唯一的键来对列表进行排序吗?或者我缺少某种明显的解决方案。
一个以前的计算器的问题介绍了如何以字母数字排序的字符串列表.我想用元组的第一个元素按字母数字排序元组列表.
例1:
>>> sort_naturally_tuple([('b', 0), ('0', 1), ('a', 2)])
[('0', 1), ('a', 2), ('b', 0)]
Run Code Online (Sandbox Code Playgroud)
例2:
>>> sort_naturally_tuple([('b10', 0), ('0', 1), ('b9', 2)])
[('0', 1), ('b9', 2), ('b10', 0)]
Run Code Online (Sandbox Code Playgroud)
更新: 要强调字母数字因素,请查看示例2.
我试图解决如何在python中将字母数字集排序为Django中提出的问题的答案.我有一个查询返回的Django模型实例列表,我无法弄清楚如何使用lambda构建一个优雅(或其他!)排序函数.
如果我的模型包含'name'属性 - 例如
result = Take.objects.all()
for i in result:
print i.name
Run Code Online (Sandbox Code Playgroud)
如何通过name属性对结果对象列表进行排序并应用多个测试?
即我的名字值可以是'1A','1','A1','001A'等
例如,给出这个顺序(基于名称)
1A
2A
10A
A1
A2
A10
A11
B2
B4
Run Code Online (Sandbox Code Playgroud) 我有一个相同类型的对象列表
lis = [<obj>, <obj>, <obj>]
Run Code Online (Sandbox Code Playgroud)
我希望通过object属性自然排序name.我试过了
sortedlist = sorted(lis, key=lambda x: x.name)
Run Code Online (Sandbox Code Playgroud)
然而,这将列表排序为
A1
A10
A2
Run Code Online (Sandbox Code Playgroud)
不是我想要的格式
A1
A2
A10
Run Code Online (Sandbox Code Playgroud)
我已经尝试修改代码来排序字母数字字符串,但我不能让它适用于对象列表.
我有以下列表:
my_list = ['name.13','name.1', 'name.2','name.4', 'name.32']
Run Code Online (Sandbox Code Playgroud)
我希望对列表进行排序并按顺序打印出来,就像这样
name.1
name.2
name.4
name.13
name.32
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的是:
print sorted(my_list)
name.1
name.13
name.2
name.32
name.4
Run Code Online (Sandbox Code Playgroud)
sorted()命令显然按字母顺序处理字符串.也许在检测到.第一个之后用数字排序会更好吗?
有没有一个好的方法来正确排序?什么是最有效的方法?我如何应用这个是我有一个元组列表,并希望使用元组的第二个元素对它进行排序?例如:
tuple_list = [('i','name.2'),('t','name.13'),('s','name.32'),('l','name.1'),('s','name.4')]
print tuple_list
'l','name.1'
'i','name.2'
's','name.4'
't','name.13'
's','name.32'
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助,如果您认为可以改进/澄清问题,请一如既往地发表评论.
亚历克斯
python ×6
sorting ×5
list ×2
alphanumeric ×1
django ×1
natural-sort ×1
sorted ×1
split ×1
string ×1
tuples ×1