相关疑难解决方法(0)

if/else在Python的列表理解中?

如何在Python中执行以下操作?

row = [unicode(x.strip()) for x in row if x is not None else '']
Run Code Online (Sandbox Code Playgroud)

实质上:

  1. 用空字符串替换所有Nones,然后
  2. 执行功能.

python list-comprehension

791
推荐指数
8
解决办法
65万
查看次数

是否可以在python列表理解中使用'else'?

这是我试图变成列表理解的代码:

table = ''
for index in xrange(256):
    if index in ords_to_keep:
        table += chr(index)
    else:
        table += replace_with
Run Code Online (Sandbox Code Playgroud)

有没有办法将else语句添加到此理解中?

table = ''.join(chr(index) for index in xrange(15) if index in ords_to_keep)
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

190
推荐指数
4
解决办法
10万
查看次数

使用if语句列出理解

我想比较2个iterables并打印出两个iterables中出现的项目.

>>> a = ('q', 'r')
>>> b = ('q')


# Iterate over a. If y not in b, print y.
# I want to see ['r'] printed.
>>> print([ y if y not in b for y in a])
                              ^
Run Code Online (Sandbox Code Playgroud)

但是它给了我一个无效的语法错误^.这个lamba函数有什么问题?

python if-statement list-comprehension

90
推荐指数
4
解决办法
13万
查看次数

将字符串列表转换为int或float

我有一个看起来像这样的列表:

['1', '2', '3.4', '5.6', '7.8']
Run Code Online (Sandbox Code Playgroud)

如何将前两个更改为int最后两个float

我希望我的列表看起来像这样:

[1, 2, 3.4, 5.6, 7.8]
Run Code Online (Sandbox Code Playgroud)

python list

5
推荐指数
3
解决办法
5378
查看次数

如何在字典列表中使用列表和字典理解添加键和值?

我有一个字典列表,

ip_list = [{'1403': [-56, -58], 'data': '1'},
           {'1403': [-56, -58], 'data': '0'}]
Run Code Online (Sandbox Code Playgroud)

现在我需要在字典中添加一个新的键(即“mac”)和值(即“xyz”),如果字典包含“data”= 1,结果应该是,

expected_outcome = [{'1403': [-56, -58], 'data': '1', 'mac':'xyz'},
                    {'1403': [-56, -58], 'data': '0'}]
Run Code Online (Sandbox Code Playgroud)

我尝试过,

list_dict_comp = [dict(item, **{'mac':'xyz'}) for item in ip_list]
Run Code Online (Sandbox Code Playgroud)

鉴于上述表达式给出,

list_dict_comp = [{'1403': [-56, -58], 'data': '1', 'mac':'xyz'},
                  {'1403': [-56, -58], 'data': '0', 'mac':'xyz'}]
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我在一个表达式中同时使用列表和字典理解来实现“expected_outcome”吗?

python dictionary list python-3.x

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

如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?

# import packages, set nan
import pandas as pd
import numpy as np
nan = np.nan
Run Code Online (Sandbox Code Playgroud)

问题

我有一个数据框,有一定数量的观察作为列,测量作为行。该结果的意见A, B, C, D ...。它也有一个类别列,它表示类别的的测量。分类:a, b, c, d .... 如果一列nan在一行中包含 a ,则意味着尚未进行该测量期间的观察(因此nan不是 an observation,而是缺少它)。一个MRE

data = {'observation0': ['A','A','A','A','B'],'observation1': ['B','B','B','C',nan], 'category': ['a', 'b', 'c','a','b']}
df = pd.DataFrame.from_dict(data)
Run Code Online (Sandbox Code Playgroud)

df 看起来像这样:

在此处输入图片说明

我想计算A, B, C, D...使用每个测量类别(即)观察到的每个观察结果(即)的次数a, b, c, d ...。 …

python lambda dataframe python-3.x pandas

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

如何使用列表推导在循环内进行列表展平?

这里我有字典列表,我的目标是迭代列表,每当有2个或更多列表可用时,我想合并它们并附加在输出列表中,只要有一个列表,它就需要存储为它作为.

data = [
            [[{'font-weight': '1'},{'font-weight': '1'}],[{'font-weight': '2'},{'font-weight': '2'}]],
            [{'font-weight': '3'},{'font-weight': '3'},{'font-weight': '3'}],
            [[{'font-weight': '1'},{'font-weight': '1'}],[{'font-weight': '2'},{'font-weight': '2'}]],
            [{'font-weight': '3'},{'font-weight': '3'}]
        ]
Run Code Online (Sandbox Code Playgroud)

我可以列出特定元素的扁平化 data[0]

print([item for sublist in data[0] for item in sublist])
[{'font-weight': '1'}, {'font-weight': '1'}, {'font-weight': '2'}, {'font-weight': '2'}]
Run Code Online (Sandbox Code Playgroud)

预期产量:

data = [
            [{'font-weight': '1'},{'font-weight': '1'},{'font-weight': '2'},{'font-weight': '2'}],
            [{'font-weight': '3'},{'font-weight': '3'},{'font-weight': '3'}],
            [{'font-weight': '1'},{'font-weight': '1'},{'font-weight': '2'},{'font-weight': '2'}]
            [{'font-weight': '3'},{'font-weight': '3'}]
        ]
Run Code Online (Sandbox Code Playgroud)

python dictionary list

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

python 列表推导式中的 if-else

是否可以为以下 python 代码编写列表推导式:

for str in range(0,len(mixed_content)):
    if (mixed_content[str].isdigit()):
        num_list.append(mixed_content[str])
    else:
        string_list.append(mixed_content[str])
Run Code Online (Sandbox Code Playgroud)

我们可以在列表推导式中使用 else 块吗?我尝试为上述代码编写列表推导式:

num_list , string_list = [   mixed_content[str]  for str in range(0,len(mixed_content)) if(mixed_content[str].isdigit()) else ]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension python-2.7 python-3.x

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

为什么这个列表理解会给我一个语法错误?

我有以下列表理解.

return [tower for tower in state if tower != space else []]
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,python吐出了这个错误:

return [tower for tower in state if tower != space else []]  
                                                      ^
    SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

如果我删除else语句,它运行正常.我是否以某种方式写错了其他声明?

python if-statement list-comprehension

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

堆叠内联 For plus If else

我写了一行应该总结除 0 之外的字符串的所有数字。在零上它应该加上 5。

怎么了

s="123450"
o=sum([int(x) for x in s if int(x) != 0 else 5])
Run Code Online (Sandbox Code Playgroud)

它给出了语法错误,但是

s="123450"
o=sum([int(x) for x in s if int(x) != 0])
Run Code Online (Sandbox Code Playgroud)

工作正常。

python python-3.x

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

生成器卡在列表理解中的无限循环中?

这很好用:

>>> def my_range(stop):
    i = 0
    while i < stop:
        yield i
        i += 1

>>> [k for k in my_range(10) if k < 5]
[0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

现在我修改我的发电机:

>>> def my_range():
    i = 0
    while True:
        yield i
        i += 1

>>> result = []
>>> for k in my_range():
    if k < 5:
        result.append(k)
    else:
        break


>>> print(result)
[0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

现在,为什么这个陷入无限循环?即使我有k <5.生成器是否应该只在下一次被调用时迭代?

>>> [k for k in my_range() if k < 5]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension generator

0
推荐指数
2
解决办法
1712
查看次数

用"where"声明数组

Python选项中有这样的声明数组吗?

arr = [x for x in vec where x < 2] - (编辑:抱歉'来自'.我的常见错误(日食总是修复我))

(或没有实际循环的其他声明)

python arrays

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