我有一个列表,我想了解其中所有数字之间的差异。从算法上来说,似乎我应该取列表中每个项目彼此相减的绝对值,然后找到减法总和的平均值。不用担心绝对值部分。这仅与我的应用程序相关。
例如:
list_a = [1,2,3,4]
list_a0 = (abs(1-2) + abs(1-3) + abs(1-4))/3 = 1+2+3 = 2
list_a1 = (abs(2-1) + abs(2-3) + abs(2-4))/3 = 1+1+2 = 1.33
list_a2 = (abs(3-1) + abs(3-2) + abs(3-4))/3 = 2+1+1 = 1.33
list_a3 = (abs(4-1) + abs(4-2) + abs(4-3))/3 = 3+2+1 = 2
avg = (lista0 + lista1 + lista2 + lista3)/4 = 1.67
Run Code Online (Sandbox Code Playgroud)
我对 python 比较陌生。有人能够提供有关如何循环执行list_a
此操作的提示吗?
我创建了一个列表结构:
data = [
[['name', 'date', 3] , 'text text text text'],
[['name', 'date', 5] , 'text text text text'],
[['name', 'date', 7] , 'text text text text'],
[['name', 'date', 8] , 'text text text text']
]
Run Code Online (Sandbox Code Playgroud)
我希望它只是这样:
data = [
['name', 'date', 3 , 'text text text text'],
['name', 'date', 5 , 'text text text text'],
['name', 'date', 7 , 'text text text text'],
['name', 'date', 8 , 'text text text text']
]
Run Code Online (Sandbox Code Playgroud)
我需要解开第一个元素。
这是代码,但我希望它使用列表理解来完成:
final_res = list()
for …
Run Code Online (Sandbox Code Playgroud) 列表理解通常用于过滤和转换列表.
给定变量nums,其值是整数列表,写一个赋值语句,为变量square_odds分配列表nums中奇数的平方列表.
您必须使用列表理解
这是我到目前为止,但我得到一个错误代码:
nums = [square_odds**2 for square_odds in nums if square_odds %2 != 0]
Run Code Online (Sandbox Code Playgroud)
我收到此错误代码:您尚未分配到square_odds.
我有一个具有特定指数的清单
list1 = [0,3,5]
Run Code Online (Sandbox Code Playgroud)
和另一个清单.
list2 = ['a','b','c','d','e','f']
Run Code Online (Sandbox Code Playgroud)
我想要一个单行代码来返回list1中提到的索引的list2项.
output = ['a','d','f']
Run Code Online (Sandbox Code Playgroud)
我知道它可能来自带有/不带lambda函数的综合for循环.
我尝试的尝试类似于下面的内容
[x for x in list2[y] if y in list1]
[m for m in list2 for f in list1]
[for x in i: list2[x]]
Run Code Online (Sandbox Code Playgroud)
这些尝试都没有给我预期的结果.
请让我知道如何实现这一目标!
我正在读一个csv文件,作为回报我得到一组网址,我把它保存到列表中
urls.append(url)
Run Code Online (Sandbox Code Playgroud)
然后我做一个while循环来解析每个url以获取每个url的html内容
i=len(urls)
while(i<len(urls)):
url1=urls[i]
print url1
mech1 = Browser()
mech1.set_handle_robots(False)
mech1.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
page = mech1.open(url1)
html = page.read()
soup = BeautifulSoup(html)
++i
Run Code Online (Sandbox Code Playgroud)
当我打印url1时,它会多次打印第一个url,我想从列表中打印每个url
我有以下列表和变量 i:
probs = [1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9]
i = 3
Run Code Online (Sandbox Code Playgroud)
我想将变量 i 中给出的索引的列表中的值更改为 3/9,并将其余值更改为 8/9。因此,上述条件的预期结果将是:
probs = [8/9, 8/9, 8/9, 3/9, 8/9, 8/9, 8/9, 8/9, 8/9]
Run Code Online (Sandbox Code Playgroud)
我更喜欢用列表理解来提高效率,有什么想法吗?
我试图找到相关的问题但却找不到创建一个新的问题.我的程序根据简单的if条件在python中使用list comprehension创建一个新列表.
Newone = [ temp for temp in Oldone if temp % 2 != 0 ]
Run Code Online (Sandbox Code Playgroud)
它工作正常但在某些情况下它不起作用.例如这一个
Oldone = [1]
Newone = [ temp for temp in Oldone if temp % 2 != 0 ]
Run Code Online (Sandbox Code Playgroud)
这返回[1],但我期待Newone成为[]