小编Kai*_*nen的帖子

Python:AttributeError:'_ io.TextIOWrapper'对象没有属性'split'

我有一个文本文件,让我们调用它goodlines.txt,我想加载它并创建一个包含文本文件中每一行的列表.

我尝试使用这样的split()程序:

>>> f = open('goodlines.txt')
>>> mylist = f.splitlines()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_io.TextIOWrapper' object has no attribute 'splitlines'
>>> mylist = f.split()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_io.TextIOWrapper' object has no attribute 'split'
Run Code Online (Sandbox Code Playgroud)

为什么我会收到这些错误?这不是我用的方式split()吗?(我正在使用python 3.3.2)

python python-3.x

23
推荐指数
3
解决办法
12万
查看次数

Python:我如何使用itertools?

我正在尝试制作一个包含所有可能的1和0变体的列表.例如,如果我只有两位数,我想要一个像这样的列表:

[[0,0], [0,1], [1,0], [1,1]]
Run Code Online (Sandbox Code Playgroud)

但如果我决定有3位数,我想有一个这样的列表:

[[0,0,0], [0,0,1], [0,1,0], [0,1,1], [1,0,0], [1,0,1], [1,1,0], [1,1,1]]
Run Code Online (Sandbox Code Playgroud)

有人告诉我使用itertools,但我不能按照我想要的方式工作.

>>> list(itertools.permutations((range(2))))
[(0, 1), (1, 0)]
>>> [list(itertools.product((range(2))))]
[[(0,), (1,)]]
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?问题二,如何在这样的模块上找到文档?我只是在这里盲目地挥舞着

python list python-itertools

6
推荐指数
3
解决办法
7324
查看次数

Python:我不明白sum()的完整用法

当然我得到它你使用sum()与几个数字,然后它总结了所有,但我正在查看它上面的文档,我发现这个:

sum(iterable[, start])
Run Code Online (Sandbox Code Playgroud)

第二个论点"[,开始]"是什么?这是如此令人尴尬,但我似乎无法找到谷歌的任何例子,对于试图学习该语言的人来说,文档相当神秘.

它是某种列表吗?我无法让它发挥作用.以下是我尝试过的一个示例:

>>> sum(13,4,5,6,[2,4,6])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sum expected at most 2 arguments, got 5
Run Code Online (Sandbox Code Playgroud)

python

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

Python:将两个dicts加在一起

Alrigt,假设我有这两个词典:

A = {(3,'x'):-2, (6,'y'):3, (8, 'b'):9}
B = {(3,'y'):4, (6,'y'):6}
Run Code Online (Sandbox Code Playgroud)

我想把它们加在一起,这样我得到一个类似于这个的字典:

C = {(3,'x'):-2,(3,'y'):4, (6,'y'):9, (8, 'b'):9}
Run Code Online (Sandbox Code Playgroud)

我试过做一个理解,为任何长度的dicts做这个.但对新手来说似乎有点困难.我处在这样的水平,我尝试这样的东西,例如:

编辑:

>>> {k:A[k]+B[d] for k in A for d in B}
{(6, 'y'): 7, (3, 'x'): 2, (8, 'b'): 13}
Run Code Online (Sandbox Code Playgroud)

由于某些原因,我得到了这么多,但它遗漏了(3,'y'):4

python

3
推荐指数
2
解决办法
2932
查看次数

Python 字典中的元素加法

我有一本表格的字典。

dictName = {'Hepp': [-1,0,1], 'Fork': [-1,-1,-1], 'Dings': [0,0,1]}
Run Code Online (Sandbox Code Playgroud)

我基本上想提取值(列表)

并将它们按元素相加并得到一个向量作为结果,就像

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

我很难弄清楚如何编写此代码,并且我找到的所有添加列表的示例都假设我可以将其放入元组中,但我可能必须将 100 个列表添加在一起。你们有人能帮忙吗?

python logic

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

Python:dict乘法

我使用Python学习线性代数,我有两个词典:

v = {1: 1, 2: 8, 3: 0}
Run Code Online (Sandbox Code Playgroud)

M = {(1, 2): 2, (3, 1): 1, (3, 3): 7, (2, 1): -1}
Run Code Online (Sandbox Code Playgroud)

我想创建一个字典,添加所有元素,其中v中的键与M中元组的第一部分相同.这里我想要作为两个字典的答案.(我将展示我想要做的计算)

newDict = {1: 1*M[(1, 2)], 2: 8*M[(2, 1)], 3: 0*M[(3, 1)]+0*M[(3, 3)]
Run Code Online (Sandbox Code Playgroud)

这与:

newDict = {1: 1*2, 2: 8*-1, 3: 0*1+3*7} 
Run Code Online (Sandbox Code Playgroud)

所以我在表格中得到了一本最后的字典

newDict = {1:2, 2:-8, 3:0}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我想要与字典v中相同的键.我得到的最接近的是:

>>> [v[k]*M[r] for k in v for r in M if k == r[0]]
[2, -8]
Run Code Online (Sandbox Code Playgroud)

我至少有正确的答案,但我不能让它工作.我不知道从这里去哪里或者我是否在正确的轨道上.对不起,如果我的解释可能不足

python math linear-algebra

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

Python:在列表列表中找到最左边的非零值

说我有这份清单

listlist = [[0,0,0,1],[0,0,1,1],[1,0,1,1]]
Run Code Online (Sandbox Code Playgroud)

和一个空的字典()

answer = dict()
Run Code Online (Sandbox Code Playgroud)

并且我想在每个列表中找到最左边的非零,这样我就可以将该非零数字的索引保存到字典中,如:

for list in listlist: #(this is how the first iteration would look like:)

answer[0] = 3
Run Code Online (Sandbox Code Playgroud)

下一次迭代

answer[1] = 2
Run Code Online (Sandbox Code Playgroud)

下一次迭代

answer[2] = 0
Run Code Online (Sandbox Code Playgroud)

我是编程的新手,所以请原谅我,如果它是微不足道的,我尝试了不同的东西,很难找到如何做到这一点.

python python-3.x

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

Python:"如果最接近1"

我在字典上做一些计算.但重要的是我想要制作一种if条件

"如果x的值比变量更接近1(或等于1)"

有点难以解释,但希望你理解.

python logic

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

Python:我可以在列表中添加其他所有整数吗?

我已经尝试了一些列表,我想添加列表的其他部分.

说我有一个清单

[2,4,8,9,4,2]
Run Code Online (Sandbox Code Playgroud)

我想加两个和两个像

[2+4,8+9,4+2] so I get the list [6,17,6]
Run Code Online (Sandbox Code Playgroud)

即使列表长度不同,是否有可能这样做?(为了方便起见,我假设列表ALWAYS的数字是2的倍数,所以可以这样做)

我不确定我能搜索什么来回答这个问题

python python-3.x

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