如何检查字符串中的子字符串,直到 python 中某个字符出现?
How to check a substring in a string up until a certain occurrence of a character in python?
我收到包含客户名称、订单价格和订单数量的订单。
订单格式如下:{'first order': ['Alex', '100@2']}
(100 refers to a price and 2 refers to a quantity).
所以我有不同的命令:{'first order': ['Alex', '99@2'], 'second order': ['Ann', '101@2'], 'third order': ['Nick', '110@3']}
我们需要比较价格,看看哪个价格最高,哪个价格最低。
我想通过将子字符串分成两部分来做到这一点,第一部分在“@”符号之前,第二部分在“@”符号之后,然后从第一部分中提取数字并进行比较与他人
您认为解决此问题的最有效方法是什么?
谢谢
我建议将字典转换为字典列表,并将字符串转换为两个浮点数。例如:
orders = {
"first order": ["Alex", "99@2"],
"second order": ["Ann", "101@2"],
"third order": ["Nick", "110@3"],
}
orders = [
{
"order": k,
"name": name,
"price": float(pq.split("@")[0]),
"quantity": float(pq.split("@")[1]),
}
for k, (name, pq) in orders.items()
]
然后如果你想找到最高价和最低价你可以很容易地使用min
/max
函数:
highest = max(orders, key=lambda k: k["price"])
lowest = min(orders, key=lambda k: k["price"])
print(highest)
print(lowest)
打印:
{'order': 'third order', 'name': 'Nick', 'price': 110.0, 'quantity': 3.0}
{'order': 'first order', 'name': 'Alex', 'price': 99.0, 'quantity': 2.0}
我收到包含客户名称、订单价格和订单数量的订单。
订单格式如下:{'first order': ['Alex', '100@2']}
(100 refers to a price and 2 refers to a quantity).
所以我有不同的命令:{'first order': ['Alex', '99@2'], 'second order': ['Ann', '101@2'], 'third order': ['Nick', '110@3']}
我们需要比较价格,看看哪个价格最高,哪个价格最低。
我想通过将子字符串分成两部分来做到这一点,第一部分在“@”符号之前,第二部分在“@”符号之后,然后从第一部分中提取数字并进行比较与他人
您认为解决此问题的最有效方法是什么?
谢谢
我建议将字典转换为字典列表,并将字符串转换为两个浮点数。例如:
orders = {
"first order": ["Alex", "99@2"],
"second order": ["Ann", "101@2"],
"third order": ["Nick", "110@3"],
}
orders = [
{
"order": k,
"name": name,
"price": float(pq.split("@")[0]),
"quantity": float(pq.split("@")[1]),
}
for k, (name, pq) in orders.items()
]
然后如果你想找到最高价和最低价你可以很容易地使用min
/max
函数:
highest = max(orders, key=lambda k: k["price"])
lowest = min(orders, key=lambda k: k["price"])
print(highest)
print(lowest)
打印:
{'order': 'third order', 'name': 'Nick', 'price': 110.0, 'quantity': 3.0}
{'order': 'first order', 'name': 'Alex', 'price': 99.0, 'quantity': 2.0}