相关疑难解决方法(0)

你如何找到字典中的第一把钥匙?

我想让我的程序"banana"从字典中打印出来.最简单的方法是什么?

请注意,我并不是试图让我的程序打印出与之相关的值"banana",而是打印出"banana"一个for循环,所以当我运行它时,每个键也会打印出来.

这是我的字典:

prices = {
    "banana" : 4,
    "apple" : 2,
    "orange" : 1.5,
    "pear" : 3
}
Run Code Online (Sandbox Code Playgroud)

python dictionary

128
推荐指数
9
解决办法
23万
查看次数

从Python迭代器获取最后一项的最简洁方法

在Python 2.6中从迭代器获取最后一项的最佳方法是什么?例如,说

my_iter = iter(range(5))
Run Code Online (Sandbox Code Playgroud)

什么是最短的代码/最干净的方式4来自my_iter

我可以做到这一点,但它看起来效率不高:

[x for x in my_iter][-1]
Run Code Online (Sandbox Code Playgroud)

python iterator python-2.7 python-3.x

102
推荐指数
8
解决办法
4万
查看次数

如何从python中的单成员集中提取成员?

我最近遇到了一个场景,如果一个集合只包含一个元素,我想用该元素做一些事情.为了得到这个元素,我决定采用这种方法:

element = list(myset)[0]
Run Code Online (Sandbox Code Playgroud)

但这并不是很令人满意,因为它会创建一个不必要的列表.它也可以通过迭代完成,但迭代似乎也不自然,因为只有一个元素.我错过了一些简单的事吗?

python set

58
推荐指数
4
解决办法
2万
查看次数

从Sympy返回的有限集返回的解决方案集中获取值

我在Python Sympy库中创建一个脚本,并尝试访问solveset()和linsolve()函数返回的结果.我的问题是这些函数返回的对象是有限集类型,我想自动选择一些结果,以便在其他方程中重新输入它.任何人都可以帮助我?

一个例子: 我创建了一个包含两个未知变量的方程列表:

>>> a1, a2 = symbols('a1, a2')
>>> eq2_1 = Eq(-3*a1/10 - 3*a2/20 + 1/12)
>>> eq2_2 = Eq(-3*a1/20 - 13*a2/105 + 1/20)
>>> lista = [eq2_1,eq2_2]
>>> str(lista)
[-3*a1/10 - 3*a2/20 + 1/12, -3*a1/20 - 13*a2/105 + 1/20]
Run Code Online (Sandbox Code Playgroud)

然后使用linsolve()方法解决它.

>>> a = linsolve(lista,a1,a2)
>>> a
{(71/369, 7/41)} 
Run Code Online (Sandbox Code Playgroud)

结果是正确的,但我无法将这些结果输入变量.

我尝试了dics,list,tuples,indexing命令,但总是返回错误."Finiteset对象没有属性'命令'"

python sympy

18
推荐指数
4
解决办法
5729
查看次数

从长度为 1 的元组中解压返回值

假设我有一个虚拟函数,它准确地返回作为参数给出的内容:

def dummy_single(arg1):
    """Repeat the same argument."""
    return arg1
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式使用这个功能:

same_obj1 = dummy_single(obj1)
Run Code Online (Sandbox Code Playgroud)

现在,如果我想允许这个函数接受多个参数并返回相同的参数,我可以打包和解包参数:

def dummy_multiple(*args):
    """Repeat all given arguments."""
    return args
Run Code Online (Sandbox Code Playgroud)

请注意,这个函数恰好是恒等式,但这不是问题的核心。您可以想象任何返回可变长度元组的函数。

当使用多个参数调用时它效果很好:

same_obj1, same_obj2 = dummy_multiple(obj1, obj2)
Run Code Online (Sandbox Code Playgroud)

但是,这不会按预期工作:

same_tuple = dummy_multiple(obj1)
Run Code Online (Sandbox Code Playgroud)

same_obj1包含一个(打包)元组,与前两个示例中的对象相反。我考虑通过以下方式修复此行为,但它看起来并不干净,因为返回的类型根据参数的不同而不同。

def dummy_multiple_fixed(*args):
    """Repeat all given arguments."""
    if len(args) == 1:
        return args[0]
    return args
Run Code Online (Sandbox Code Playgroud)

这不是一个关键问题并且很容易解决。但我找不到一种干净而优雅的方法来解决这个问题。

python design-patterns tuples python-3.x

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

删除双重列表的外部列表

假设我有一个列表,其中包括:

[['a','b','c','d']]
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以删除外部列表,以便输出

['a','b','c','d']
Run Code Online (Sandbox Code Playgroud)

我想到了类似 pop 的东西,但是删除了元素,我只想删除外部列表。

我知道我可以遍历双列表并将元素附加到新列表中,问题将得到解决,但我对该解决方案不满意,我想要一个更流畅的代码更清晰的解决方案。

python list

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

如何解包列表列表中的单项元组

我有这种形式的列表列表:

[[('1st',), ('2nd',), ('5th',)], [('1st',)]]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

[['1st', '2nd', '5th'], ['1st']]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

res = [list(ele) for ele in racer_placement for ele in ele]
Run Code Online (Sandbox Code Playgroud)

但我得到的结果:

[['1st'], ['2nd'], ['5th'], ['1st']]
Run Code Online (Sandbox Code Playgroud)

python tuples list

0
推荐指数
1
解决办法
447
查看次数

在python中获取没有if或for块的列表元素

几天前,在我的考试中,我遇到了这个问题: 4. 不用 if 语句重写以下代码。代码应该是单行的。(不使用任何其他循环)

If not flora and fauna:
      return True
else:
      return False
Run Code Online (Sandbox Code Playgroud)

我无法回答这个问题,但对我来说仍然很有趣/奇怪,因为我不是 Python 专家。我已经尝试了很多方法,比如extend()函数,但仍然不知道如何做到这一点。

任何想法或提示?

编辑:我错误地提出了这个问题。非常遗憾。由于我没有太多经验,我认为这个问题只能通过列出来解决。

python

0
推荐指数
1
解决办法
50
查看次数

python从列表[元组[str]]到列表[str]

我有这样的事情:

[('a',), ('b',), ('c',),('d',)]
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的:

['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

p = [('a',), ('b',), ('c',),('d',)]
[el[0] for el in p]
Run Code Online (Sandbox Code Playgroud)

有没有更“Pythonic 的方式”来做到这一点?我想避免使用 for 循环,因为我的列表由 165400 个元组组成

python dictionary

0
推荐指数
1
解决办法
148
查看次数