小编Ste*_*uch的帖子

Python检索列表中标记之间的嵌套值列表

我有一个列表是:

[2,3,5,"TAG",6,7,3,2,6,"TAG",9,9,8,3]
Run Code Online (Sandbox Code Playgroud)

我想返回一个列表,其中包含位于"TAG"之间的嵌套的值列表.

所以结果列表看起来像:

[[2,3,5], [6,7,3,2,6], [9,9,8,3]]
Run Code Online (Sandbox Code Playgroud)

我在下面创建了一个尝试实现此方法但不起作用的方法:

def returnListBetweenTag(lst, tag):
  temp = []
  k = lst.index(tag)
  while lst != []:
      temp.append(lst[0:k])
      del lst[0:k+1]
  return temp
Run Code Online (Sandbox Code Playgroud)

打印出:

[[2, 3, 5], [6, 7, 3], [6, 'TAG', 9], [8, 3]]
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我理解我做错了什么,并提出一些修复建议吗?

python list slice

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

python OrderedDict 获取关键索引

OrderedDict拿到关键位置吗?

就像是listindex()

test = ['a', 'b', 'c', 'd', 'e']
test.index('b') # return 1
Run Code Online (Sandbox Code Playgroud)

python list ordereddictionary python-3.x

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

super().method()和self.method()之间有什么区别?

当我们从父类继承某些内容以及为什么使用其中一种而不是另一种时,使用super().method()和之间的区别是什么self.method()

我唯一想到的是,使用静态方法显然无法调用self.method().至于其他一切,我无法提出使用的理由super().

有人在选择一个而不是另一个问题时提出一个虚拟的例子,并解释为什么,或者它只是常规的事情?

python python-3.x

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

如何从 setUpClass 跳过所有测试

setUpClass如果某些条件在功能下不满足,我想跳过所有单元测试。喜欢 -

@classmethod
def setUpClass(cls):
    if(!condition):
        cls.skipTest("For some reason")
Run Code Online (Sandbox Code Playgroud)

执行此操作后,我预计其他单元测试用例将不会运行。但它显示错误

类型错误:skipTest() 缺少 1 个必需的位置参数:“原因”

python python-3.x python-unittest

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

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

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

Python覆盖率:不包括文件

我使用unittest2覆盖其中还包含我的项目在虚拟环境中。

当我运行时coverage report -m,报告显示来自lib/python3.5/site-packages/ 的其他几个文件。

因为有几个文件要排除,每次我想运行测试并查看覆盖率报告时,尝试从命令行排除它们是很乏味的。这就是我选择依赖配置文件的原因。

文件说我应该在这样做.coveragerc文件。但是我看不到它。当我运行pip show coverage然后ls -a path_to_coverage_directory我看到config.py文件时。因此,通过查看选项在哪里--omit并将其更改为从测试和报告中排除了一个文件:

self._omit = None 
Run Code Online (Sandbox Code Playgroud)

到:

self._omit = ['/home/begueradj/development/app/lib/python3.5/site-packages/unittest2/case.py']
Run Code Online (Sandbox Code Playgroud)

我保存了配置文件并再次运行测试以及覆盖率报告:我看到这个文件没有被排除。

我错过了什么?你如何解决这个问题?

python unit-testing code-coverage config

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

复杂的 json 到 Pandas 数据框

有很多关于 json to pandas 数据框的问题,但没有一个能解决我的问题。我正在练习这个看起来像这样的复杂 json 文件

{
  "type" : "FeatureCollection",
  "features" : [ {
    "Id" : 265068000,
    "type" : "Feature",
    "geometry" : {
      "type" : "Point",
      "coordinates" : [ 22.170376666666666, 65.57273333333333 ]
    },
    "properties" : {
      "timestampExternal" : 1529151039629
    }
  }, {
    "Id" : 265745760,
    "type" : "Feature",
    "geometry" : {
      "type" : "Point",
      "coordinates" : [ 20.329506666666667, 63.675425000000004 ]
    },
    "properties" : {
      "timestampExternal" : 1529151278287
    }
  } ]
}
Run Code Online (Sandbox Code Playgroud)

我想使用pd.read_json()我的主要目标将这个 json 直接转换为 Pandas 数据帧,我的主要目标是提取 Id、坐标和时间戳外部。由于这是非常复杂的 …

python json dataframe pandas

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

Python Click:错误:调用 --help 标志时缺少参数

这是我的代码:

@click.group()
@click.pass_context
@click.argument('CHALLENGE', type=int)
def challenge(ctx, challenge):
    ctx.obj = Challenge(challenge=challenge)

@click.group(invoke_without_command=True, cls=PhaseGroup)
@click.pass_obj
@click.argument('PHASE', type=int)
def phase(ctx, phase):
    # Something

challenge.add_command(phase)
Run Code Online (Sandbox Code Playgroud)

这些命令一起工作应该是这样的。

cli challenge 1 phase 1
Run Code Online (Sandbox Code Playgroud)

通过正确执行,它可以按预期工作。

但是当我使用 --help 或在阶段上定义任何其他标志时,它会抛出

cli challenge 1 phase 1 --help

It throws Error: Missing argument "PHASE".
Run Code Online (Sandbox Code Playgroud)

我搜索了 SOF,发现python click app 失败,并显示“缺少参数”,但无法找到问题这是一个有同样问题的用户,但我不太明白答案。

我不能将参数设置为可选,因为它是 CLI 工作的关键部分。

python command-line-interface python-click

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

Python3有助于确定动态创建列表的大多数pythonic方法

寻求专家的帮助,以帮助我在创建的程序中做出正确的选择.创建列表的两种方法中哪一种看起来更像Pythonic并且对您可读?或者,有没有更好的方法可以做到这一点?

方法#1 - 列表理解

def test_func(*args):
    s = 'Country name: United {nm}'
    l = [s.format(nm='States') if x is 'us' 
         else s.format(nm='Arab Emirates') if x is 'uae'
         else s.format(nm='Kingdom') if x is 'uk' 
         else 'Unknown' for x in args]
    return l

# execute
test_func('us', 'uk', 'uae')

# results
['Country name: United States',
 'Country name: United Kingdom',
 'Country name: United Arab Emirates']
Run Code Online (Sandbox Code Playgroud)

方法#2 - for循环

def test_func(*args):
    s = 'Country name: United {nm}'
    l = []
    for arg in args:
        if arg …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension python-3.x

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