相关疑难解决方法(0)

从文件中读取整数的有效方法

我想将文件中的所有整数读入一个列表.所有数字由空格(一个或多个)或结束线字符(一个或多个)分隔.这样做最有效和/或最优雅的方法是什么?我有两个解决方案,但我不知道它们是否好.

  1. 检查数字:

    for line in open("foo.txt", "r"):
        for i in line.strip().split(' '):
            if i.isdigit():
                my_list.append(int(i))
    
    Run Code Online (Sandbox Code Playgroud)
  2. 处理例外情况:

    for line in open("foo.txt", "r"):
        for i in line:
            try:
                my_list.append(int(i))
            except ValueError:
                pass
    
    Run Code Online (Sandbox Code Playgroud)

样本数据:

1   2     3
 4 56
    789         
9          91 56   

 10 
11 
Run Code Online (Sandbox Code Playgroud)

python

10
推荐指数
2
解决办法
3098
查看次数

将数据框列中的值附加到列表

我有一个包含多列的数据框,我想将一列的值附加到一个空列表中,以便所需的输出如下:

empty_list = [value_1,value_2,value_3...]
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

df = pd.DataFrame({'country':['a','b','c','d'],
      'gdp':[1,2,3,4],
      'iso':['x','y','z','w']})
a_list = []

a_list.append(df['iso'])
a_list.append(df['iso'].values)
a_list.append(df['iso'].tolist())
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,我都会得到一个包含列表、numpy 数组或系列的列表,我想直接获取记录。

python list append pandas

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

如何在python中创建一个带循环的元组

我想创建这个元组:

a=(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),(6,6,6),(7,7,7),(8,8,8),(9,9,9)
Run Code Online (Sandbox Code Playgroud)

我试过这个

a=1,1,1
for i in range (2,10):
    a=a,(i,i,i)
Run Code Online (Sandbox Code Playgroud)

但是,它会在每次迭代中在其他元组内创建一个元组.

谢谢

python for-loop tuples

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

python中"append"和"+"的区别是什么?

我不知道f()和之间有什么区别g().

在函数中f,只要调用函数,就会累积列表L.

但在功能上g,它不..

def f(a, L=[]):
    L.append([2]);
    print(L);

def g(a, L=[]):
    L = L+[2];
    print(L);

print("f:")
f(1) # [[2]]
f(2) # [[2], [2]]
f(3) # [[2], [2], [2]]

print("g:")
g(1) # [2]
g(2) # [2]
g(3) # [2]
Run Code Online (Sandbox Code Playgroud)

python

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

将2个词典与共同键组合在一起

我有两个词典,需要将类似键的值组合在一起.这是一个例子:

dict1 = {'key1':[value11,value12,value13] , 'key2':[value21,value22,value23]}
dict2 = {'key1':[value14,value15] , 'key2':[value24,value25]}
Run Code Online (Sandbox Code Playgroud)

我用了 :

dict3 = {}
for key in (dict1.viewkeys() | dict2.keys()):
    if key in dict1: dict3.setdefault(key, []).append(dict1[key])
    if key in dict2: dict3.setdefault(key, []).append(dict2[key])
Run Code Online (Sandbox Code Playgroud)

这给了我:

dict3 = {'key1':[[value11,value12,value13],[value14,value15]] , 'key2':[[value21,value22,value23],[value24,value25]]}
Run Code Online (Sandbox Code Playgroud)

我想要的是一个简单的:

期望的输出:

 dict3 = {'key1':[value11,value12,value13,value14,value15] , 'key2':[value21,value22,value23,value24,value25]}
Run Code Online (Sandbox Code Playgroud)

python dictionary python-2.7

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

具有共同元素的子列表联盟

假设我有以下嵌套列表:

L = [['John','Sayyed'], ['John' , 'Simon'] ,['bush','trump'],
     ['Sam','Suri','NewYork'],['Suri','Orlando','Canada']]
Run Code Online (Sandbox Code Playgroud)

如何通过将具有共同元素的子列表与该组中的至少另一个子列表结合起来,对这些子列表进行分组?所以对于前面的例子,结果应该是:

[['John','Sayyed','Simon'] ,['bush','trump'],
 ['Sam','Suri','NewYork','Orlando','Canada']]
Run Code Online (Sandbox Code Playgroud)

因此,前两个子列表在他们共享时加入'John'.有人可以分享他们宝贵的想法吗?

python list networkx

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

为什么+运算符不会在.append()的情况下更改列表?

我正在通过Udacity和Dave Evans介绍了关于列表属性的练习

list1 = [1,2,3,4]
list2 = [1,2,3,4]

list1=list1+[6]
print(list1)
list2.append(6)
print(list2)

list1 = [1,2,3,4]
list2 = [1,2,3,4]

def proc(mylist):
    mylist = mylist + [6]

def proc2(mylist):
    mylist.append(6)

# Can you explain the results given by the four print statements below? Remove
# the hashes # and run the code to check.

print (list1)
proc(list1)
print (list1)

print (list2)
proc2(list2)
print (list2)
Run Code Online (Sandbox Code Playgroud)

输出是

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

python list concatenation append

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

将元组附加到元组

我可以为元组添加值

>>> x = (1,2,3,4,5)
>>> x += (8,9)
>>> x
(1, 2, 3, 4, 5, 8, 9)
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能将元组添加到元组中

>>> x = ((1,2), (3,4), (5,6))
>>> x
((1, 2), (3, 4), (5, 6))
>>> x += (8,9)
>>> x
((1, 2), (3, 4), (5, 6), 8, 9)
>>> x += ((0,0))
>>> x
((1, 2), (3, 4), (5, 6), 8, 9, 0, 0)
Run Code Online (Sandbox Code Playgroud)

我怎么能做到

((1,2),(3,4),(5,6),(8,9),(0,0))

python tuples append

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

如何在迭代另一个列表时填充新列表?

代码

#Variables
var1 = ['Warehouse Pencil 1.docx', 'Production Pen 20.docx']

list1 = []
for x in var1:
    splitted = x.split()
    a = [splitted[0] + ' ' + splitted[1]]
    list1.append(a)
    print(list1)
Run Code Online (Sandbox Code Playgroud)

输出

[['Warehouse Pencil']]
[['Warehouse Pencil'], ['Production Pen']]
Run Code Online (Sandbox Code Playgroud)

目标

我打算拆分列表,获取每个部分的第 1 个和第 2 个单词,然后将它们放入一个新列表中。

为什么我的输出给我一个奇怪的输出?我哪里错了?

期望输出

我想要的输出应该是这样的:

['Warehouse Pencil', 'Production Pen']
Run Code Online (Sandbox Code Playgroud)

抓取第 1 个和第 2 个单词并将它们放入 1 个列表中。

python string for-loop list python-3.x

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

Python:将列表附加到列表

我正在用Python做一些练习,我遇到了一个疑问。我必须使用.append方法设置一个包含list前三个元素的列表。问题是,我收到断言错误,列表不匹配。如果我打印 list_first_3 我得到“[['cat', 3.14, 'dog']]”,所以双方括号是问题所在。但是我如何定义列表以使输出匹配?

list = ["cat", 3.14, "dog", 81, 6, 41]
list_first_3 = []
list_first_3.append(list[:3])

    
assert list_first_3 == ["cat", 3.14, "dog"]
Run Code Online (Sandbox Code Playgroud)

python list append

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