mar*_*arc 1 python list vector
让我们说:
list = ['apple','banana','pear','orange']
values = [3,1,2,4]
Run Code Online (Sandbox Code Playgroud)
我需要根据"values"向量中的值来排序列表字符串.在MatLab中我会合并两个然后对矢量进行排序,但似乎我不能在这里做到这一点.有任何想法吗?
谢谢!
这可能对你有用.使用zip
配对两份名单,然后进行排序,最终得到了新的列表.
>>> mylist = ['apple','banana','pear','orange']
>>> values = [3,1,2,4]
>>> [i[1] for i in sorted(zip(values, mylist))]
['banana', 'pear', 'apple', 'orange']
Run Code Online (Sandbox Code Playgroud)
顺便说一下,不要list
用于命名列表.
除了它返回迭代器而不是列表之外,您还可以使用itertools.izip
它zip()
,因此您可以获得更好的性能
>>> from itertools import izip
>>> mylist = ['apple','banana','pear','orange']
>>> values = [3,1,2,4]
>>> [i[1] for i in sorted(izip(values, mylist))]
['banana', 'pear', 'apple', 'orange']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
90 次 |
最近记录: |