我有一个零值的同义字典列表,但它可以包含任何类型的值.例:
values=[{'buy_qty': 15, 'product_id': 30}, {'buy_qty': 0,'product_id': 33},{'buy_qty': 25, 'product_id': 50}, {'buy_qty': 7, 'product_id': 22}]
Run Code Online (Sandbox Code Playgroud)
有没有办法没有重新发明轮子获取列表排序的'最小'buy_qty"通常为python方式,但列表末尾的"零"值,如下所示:
values=[{'buy_qty': 7, 'product_id': 22}, {'buy_qty': 15, 'product_id': 30}, {'buy_qty': 25, 'product_id': 50}, {'buy_qty': 0,'product_id': 33}]
Run Code Online (Sandbox Code Playgroud)
我试过过itemgetter,
sorted(total_lines, key=itemgetter('buy_qty'))
Run Code Online (Sandbox Code Playgroud)
我觉得这里可以使用"key"参数进行一些技巧
示例文件对象数据包含以下内容,
b'QmFyY29kZSxRdHkKQTIzMjMsMTAKQTIzMjQsMTUKNjUxMDA1OTUzMjkyNSwxMgpBMjMyNCwxCkEyMzI0LDEKQTIzMjMsMTAK'
Run Code Online (Sandbox Code Playgroud)
python 文件包含以下代码
string_data = BytesIO(base64.decodestring(csv_rec))
read_file = csv.reader(string_data, quotechar='"', delimiter=',')
next(read_file)
Run Code Online (Sandbox Code Playgroud)
当我在 python 中运行上面的代码时,出现以下异常
_csv.Error:迭代器应该返回字符串,而不是整数(您是否以文本模式打开文件?)
如何以文本模式打开字节数据?
我有一个包含以下详细信息的列表:
['00A', '01B', '05A', '00A', '23C', '00B']
Run Code Online (Sandbox Code Playgroud)
我想对此列表进行排序,使值按以下顺序排列:
['00A', '00A', '05A', '00B', '01B', '23C']
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法,
sorted(a, key = lambda x: (isinstance(x, str), x))
Run Code Online (Sandbox Code Playgroud)
但没有给出正确的答案 - 它给出:
['00A', '00A', '00B', '01B', '05A', '23C']
Run Code Online (Sandbox Code Playgroud)
所以我想首先根据它们的结束位置 alpha 值对它们进行排序,然后是数字后面的前导数值。
我该如何继续?