小编Ev.*_*nis的帖子

按值排序元组列表,然后按字母顺序排序

有点蟒蛇新手,但我得到了以下的元组列表.我需要按值对其进行排序,如果值相同,则按字母顺序求解关系.这是一个示例:

#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 …

python sorting import tuples list

5
推荐指数
2
解决办法
8298
查看次数

找出辅音之间的每两个(非重叠)元音

任务 你得到一个字符串。它由字母数字字符、空格和符号(+、-)组成。您的任务是找到包含两个或多个元音的原始字符串的所有子字符串。此外,这些子串必须位于辅音之间,并且应仅包含元音。

输入格式:包含 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,}我已经将它排除在捕获之外,但显然我错了,我不知道为什么。

有什么帮助吗?

python regex python-3.x

5
推荐指数
1
解决办法
1423
查看次数

按值对字典列表进行分组

我有一个字典列表。我如何按值对该列表进行分组。

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。

你能帮我实现这个目标吗?

python

5
推荐指数
1
解决办法
9190
查看次数

Python 中 elif 的字典理解?

我正在创建一本需要内部条件的字典。所以在这里,我持有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)

python

4
推荐指数
1
解决办法
5836
查看次数

检索作为列表中的字符串存储的复数的实部和虚部

我这样做是为了恢复字符串的第一部分,例如:"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)

即,只有数组中复数的虚部.

有什么想法帮我解决这个问题吗?

python complex-numbers python-3.x

4
推荐指数
1
解决办法
1394
查看次数

将字符串与列表条目合并 - 交替

所以,我试图"合并"一个字符串(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)

但我觉得有更好的方法来做到这一点..

python

3
推荐指数
1
解决办法
29
查看次数

根据第三个列表过滤列表列表的最快方法?

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 performance numpy

3
推荐指数
1
解决办法
352
查看次数

lambda表达式在Python中使用两个参数时出错

我是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)

python lambda python-3.6

3
推荐指数
1
解决办法
983
查看次数

通过嵌套列表中的元素索引查找嵌套列表的最小值和最大值

我有一个嵌套列表,如下所示:

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第一个,然后在不同的轴上进行最大值和最小值,但所有都不会出现我想要的结果.

python list

3
推荐指数
1
解决办法
1088
查看次数

找出奇数位置的最优雅方法

我有一个包含 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 python-3.x

3
推荐指数
1
解决办法
101
查看次数