小编Tyt*_*ans的帖子

无法从 pycharm 中的源目录导入模块

这个问题以前曾被问过 - 但我无法用任何答案来解决它。我在pycharm中打开了一个项目文件夹(注意项目文件夹不在../PycharmProject/...目录中。

我的结构非常基本:

project_title (folder)
             |--src (folder)
                  |-- app.py  
                  |-- pipeline_tools (folder)
                     |-- helpers.py
                     |-- other modules
Run Code Online (Sandbox Code Playgroud)

我尝试了所有可能的解决方案和组合,但是当app.py我尝试从任一模块导入函数时,tools我收到错误。

此外,Pycharm 用红色强调了以下声明:

1) from pipeline_tools.helpers import a_certain_function(红色下划线带有“未解决的参考”)

但以下内容没有给我带来红色:

2)from .pipeline_tools.helpers import a_certain_function(无红色下划线,注意相对导入)

事实上,我__init__.py在模块内部有或没有 a 没有任何改变 - 我仍然收到以下两个错误:

对于 1)

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/home/gabriele/pycharm-2019.1.1/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'pipeline_tools'

Run Code Online (Sandbox Code Playgroud)

为 2) …

import module pycharm python-3.6

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

Python根据值列表创建所有字典的组合

我想从一定数量的变量范围创建字典,如下所示。

我确实有一个非常基本的工作解决方案,但我想知道是否有一些更简洁的方式来表达相同的想法(我觉得它可以用 itertools 解决?)

a = [1, 2, 3]
b = ["me", "you", "her"]
c = range(1, 5)
d = ["mon", "tues", "wed"]

dic = {"a": None, "b": None, "c": None, "d": None}

for i in a:
    dic["a"] = i
    for j in b:
        dic["b"] = j
        for k in c:
            dic["c"] = k
            for l in d:
                dic["d"] = l
                print(dic)
Run Code Online (Sandbox Code Playgroud)

谢谢

python combinations dictionary python-itertools python-3.x

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

根据第一个元素长度递归地将列表拆分为子列表

我正在解决这个小问题,我确信可以(并且应该)递归地解决它。

# split list in sublists based on length of first element. 
list = [3, 1, 2, 3, 4, 1, 2, 3, 4]
       #*          #*

# *number of elements of the sublist    

Run Code Online (Sandbox Code Playgroud)

显示比解释要好,上面的结果应该是:

[[1, 2, 3], [1, 2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)

我正在处理的列表始终遵循此逻辑,第一个元素始终是以下 n 个元素的长度。

编辑:

根据一些建议,我只是添加了一个 yield 来懒惰地完成它。

def split(ls):
    """
    func that given a list extracts sub lists with the length indicated by the first element
    [2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4] => [[1, …
Run Code Online (Sandbox Code Playgroud)

python recursion split list multidimensional-array

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