有点蟒蛇新手,但我得到了以下的元组列表.我需要按值对其进行排序,如果值相同,则按字母顺序求解关系.这是一个示例:
#original
list_of_medals = [('Sweden', 24), ('Germany', 16), ('Russia', 10), ('Ireland', 10), ('Spain', 9), ('Albania', 8), ('Lithuania', 7), ('Iceland', 6), ('Malta', 5), ('Italy', 5), ('Serbia', 4), ('Estonia', 4), ('Turkey', 4), ('Moldova', 2), ('Azerbaijan', 2)]
# \____/ \_____/ \______/
#after sorting / \ / \ / \
sorted_medals = [('Sweden', 24), ('Germany', 16), ('Ireland', 10), ('Russia', 10), ('Spain', 9), ('Albania', 8), ('Lithuania', 7), ('Iceland', 6), ('Malta', 5), ('Italy', 5), ('Estonia', 4), ('Serbia', 4), ('Turkey', 4), ('Azerbaijan', 2), ('Moldova', 2)]
Run Code Online (Sandbox Code Playgroud)
是否可能使用该operator …
任务 你得到一个字符串。它由字母数字字符、空格和符号(+、-)组成。您的任务是找到包含两个或多个元音的原始字符串的所有子字符串。此外,这些子串必须位于辅音之间,并且应仅包含元音。
输入格式:包含 string 的单行输入。
输出格式:在单独的行上按出现顺序打印匹配的子字符串。如果未找到匹配项,则打印 -1。
样本输入:
rabcdeefgyYhFjkIoomnpOeorteeeeet示例输出:
ee
Ioo
Oeo
eeeee
上面的挑战来自https://www.hackerrank.com/challenges/re-findall-re-finditer
以下代码通过了所有测试用例:
import re
sol = re.findall(r"[^aiueo]([aiueoAIUEO]{2,})(?=[^aiueo])", input())
if sol:
for s in sol:
print(s)
else:
print(-1)
Run Code Online (Sandbox Code Playgroud)
以下没有。
import re
sol = re.findall(r"[^aiueo]([aiueoAIUEO]{2,})[^aiueo]", input())
if sol:
for s in sol:
print(s)
else:
print(-1)
Run Code Online (Sandbox Code Playgroud)
他们之间唯一的区别是正则表达式的最后一位。我不明白为什么第二个代码失败。我认为这?=是无用的,因为通过分组[aiueoAIUEO]{2,}我已经将它排除在捕获之外,但显然我错了,我不知道为什么。
有什么帮助吗?
我有一个字典列表。我如何按值对该列表进行分组。
list = [{a:1},{b:2},{c:1},{d:3},{e:2}]
Run Code Online (Sandbox Code Playgroud)
现在我的结果应该如下所示
1:a,c
2:b,e
3:d
Run Code Online (Sandbox Code Playgroud)
我尝试使用groupbyfrom itertools。但我无法得到所需的结果。我正在使用 python 2.7。
你能帮我实现这个目标吗?
我正在创建一本需要内部条件的字典。所以在这里,我持有arr_temp一些值,并且我想根据中的元素设置paired_vals arr_temp(现在仅适用于一种情况)。我尝试了if声明,但遇到了无法elif在理解中使用的错误。现在我只是paired_vals_mass在各处添加,但这对我的情况来说是错误的,因为我有几个值可以补充 中的每个元素arr_temp。谁能建议一个好方法来实现它?
report['conditions'][condname] =
{findings: [{'name': x, 'parameters': paired_vals_mass} for x in arr_temp]}
Run Code Online (Sandbox Code Playgroud) 我这样做是为了恢复字符串的第一部分,例如:"13 + i"的"13":
l1 = ['13+i', '1+4i', '3+2i', '11+4i', '5+i', '10+2i', '5+4i']
l2 = [i.split('+')[0] for i in l1]
l2 = list(map(int, l2))
Run Code Online (Sandbox Code Playgroud)
它运作良好,然后我想要"13 + i"中的"1",但由于字符串中的"i"没有"1"因素,因此它更复杂.
我应该得到:
[1, 4, 2, 4, 1, 2, 4]
Run Code Online (Sandbox Code Playgroud)
即,只有数组中复数的虚部.
有什么想法帮我解决这个问题吗?
所以,我试图"合并"一个字符串(a)和一个字符串列表(b):
a = '1234'
b = ['+', '-', '']
Run Code Online (Sandbox Code Playgroud)
获得所需的输出(c):
c = '1+2-34'
Run Code Online (Sandbox Code Playgroud)
所需输出字符串中的字符在字符串和列表之间的原点方面交替.此外,列表将始终包含一个小于字符串中字符的元素.我想知道最快的方法是什么.
到目前为止我所拥有的是以下内容:
c = a[0]
for i in range(len(b)):
c += b[i] + a[1:][i]
print(c) # prints -> 1+2-34
Run Code Online (Sandbox Code Playgroud)
但我觉得有更好的方法来做到这一点..
A我有一个如下所示的列表:
A = np.array([[1,2] ,
[2,4] ,
[3,4] ,
[4,5] ,
[6,7]])
Run Code Online (Sandbox Code Playgroud)
我需要删除包含第三个列表中任何元素的所有子列表B。
因此,如果例如:
B = [1,2,5]
Run Code Online (Sandbox Code Playgroud)
预期结果是:
np.array([[3,4] ,
[6,7]])
Run Code Online (Sandbox Code Playgroud)
A 的长度可达 1,500,000,而 B 也往往有数万个元素,因此性能至关重要。的子列表的长度A始终为 2。
我是Python新手并练习基础知识.我使用lambda表达式来获取两个参数并对它们执行方形运算(例如:) var ** 2.这两个论点来自于zip(list1, list2).我正在TypeError为此而努力.我试着寻找解决方案,但没有得到任何解决方案.我甚至尝试在括号中编写lambda参数(例如lambda (v1,v2)::)但是扔了SyntaxError.
下面是python代码:
list1 = [1,2,3,4]
list2 = [5,6,7,8]
print ( list(map(lambda v1,v2: (v1**2, v2**2), list(zip(list1, list2)))) )
Run Code Online (Sandbox Code Playgroud)
错误:
TypeError Traceback (most recent call last)
<ipython-input-241-e93d37efc752> in <module>()
1 list1 = [1,2,3,4]
2 list2 = [5,6,7,8]
----> 3 print ( list(map(lambda v1,v2: (v1**2, v2**2), list(zip(list1, list2)))) )
TypeError: <lambda>() missing 1 required positional argument: 'v2'
Run Code Online (Sandbox Code Playgroud) 我有一个嵌套列表,如下所示:
x = [[1, 5, 3, 4],
[5, 10, 7, 8],
[9, 9, 2, 12]]
Run Code Online (Sandbox Code Playgroud)
我需要找到转置的嵌套列表的最小值和最大值,以便min的结果是:
1, 5, 2, 4 # 1 is the min of first column (1, 5, 9) a.s.o
Run Code Online (Sandbox Code Playgroud)
最大值应该是:
9, 10, 7, 12
Run Code Online (Sandbox Code Playgroud)
我尝试将它转换为dataframe第一个,然后在不同的轴上进行最大值和最小值,但所有都不会出现我想要的结果.
我有一个包含 3 个字符串的列表,其中两个字符串始终相等。我想找出那个奇怪的。这些问题听起来非常简单,但我一直无法找到一种真正优雅的方法来做到这一点。
例如,列表lst = ['foo', 'bar', 'foo'], 应返回1。我目前的做法是这样的:
f = lambda x, y, z: {(0, 0): 0, (0, 1): 1}.get((x == y, x == z), 2)
ans = f(*lst)
Run Code Online (Sandbox Code Playgroud)
这里有更好的方法吗?
python ×10
python-3.x ×3
list ×2
import ×1
lambda ×1
numpy ×1
performance ×1
python-3.6 ×1
regex ×1
sorting ×1
tuples ×1