我想将文件中的所有整数读入一个列表.所有数字由空格(一个或多个)或结束线字符(一个或多个)分隔.这样做最有效和/或最优雅的方法是什么?我有两个解决方案,但我不知道它们是否好.
检查数字:
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)处理例外情况:
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) 我有一个包含多列的数据框,我想将一列的值附加到一个空列表中,以便所需的输出如下:
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 数组或系列的列表,我想直接获取记录。
我想创建这个元组:
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)
但是,它会在每次迭代中在其他元组内创建一个元组.
谢谢
我不知道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) 我有两个词典,需要将类似键的值组合在一起.这是一个例子:
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) 假设我有以下嵌套列表:
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'.有人可以分享他们宝贵的想法吗?
我正在通过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) 我可以为元组添加值
>>> 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))
代码
#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做一些练习,我遇到了一个疑问。我必须使用.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 ×10
list ×5
append ×4
for-loop ×2
tuples ×2
dictionary ×1
networkx ×1
pandas ×1
python-2.7 ×1
python-3.x ×1
string ×1