如何解决从列表列表中提取列表并将其分配给python中的列
我有一个数据集(df_norm),其列为'geometry.coordinates',其值是列表列表(l1):
<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
<Meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Fibonacci</title>
<style>
* {
outline: 0px;
margin: 0px;
}
input[type="number"] {
color: blue;
border: 2px solid black;
width: 99.58vw;
}
</style>
</head>
<body>
<div id="myDiv" style="color: white;background-color: blue;">Numbers Here</div>
<input type="number" id="input1" oninput="fibonacciProgram(this.value)" placeholder="Type Some Numbers Here">
<script>
function fibonacciProgram(numberCount) {
let resultElement = document.getElementById("myDiv");
resultElement.innerHTML = " ";
if (isNaN(numberCount) || numberCount <= 0) {
resultElement.innerHTML = "please enter a number";
return;
}
let firstBox = 0;
let secondBox = 1;
let swichBox;
let entries = [];
entries.push(secondBox);
while (numberCount > 1) {
swichBox = firstBox + secondBox;
entries.push(swichBox);
firstBox = secondBox;
secondBox = swichBox;
numberCount--;
}
resultElement.innerHTML = entries.join(',');
}
</script>
</body>
</html>
我需要从每个列表中提取单个坐标,并将每个坐标分配到单独的列中,以获取类似于以下内容的输出:
geometry.coordinates
0 [[[23.514690935490876,53.946715071429367],[2...
1 [[[23.549827385369554,53.942282407709513],[2...
2 [[[23.574999999999307,53.941666666666151],[2...
我的代码是:
longitude1 latitude1 longitude2 latitude2 ...
23.514690935490876 53.946715071429367 23.5127605166679412 53.961345695020002
23.549827385369554 53.942282407709513 23.6123409888603434 53.941666666666151
....
def flatten_list(l1):
flat_list = []
for sublist in df_norm['geometry.coordinates'][0]:
for item in sublist:
flat_list.append(item)
return flat_list
for i in range(len(df_norm['geometry.coordinates'])):
for j in df_norm['geometry.coordinates']:
flatten_list(df_norm['geometry.coordinates'])
var1 = flat_list[i][0]
var2 = flat_list[i][1]
var3 = flat_list[i][2]
var4 = flat_list[i][3]
var5 = flat_list[i][4]
我在做什么错了?
解决方法
您的flatten_list()
函数似乎生成了所有值的单个未嵌套列表。但是,在对列表进行索引以分配变量时,您使用的是嵌套表示法flat_list[i][0]
。
为了将flatten_list()
产生的新列表中的值分配给相应的变量,请尝试如下更改索引:
for i in range(len(df_norm['geometry.coordinates'])):
for j in df_norm['geometry.coordinates']:
flatten_list(df_norm['geometry.coordinates'])
var1 = flat_list[i]
var2 = flat_list[i+1]
var3 = flat_list[i+2]
var4 = flat_list[i+3]
var5 = flat_list[i+4]
此外,如果我正确理解了您的目标,则希望在每个变量名称下生成列表。照原样,循环将替换值,并仅保留最后的5个值(每个变量一个)。也许为循环外的每个变量生成列表并附加值将是更好的方法?最后-可能需要更改您的range()
参数。否则,随着临时i
变量的进行,对应于一个变量的重复值将被放置在错误的变量中。
var1 = []
var2 = []
var3 = []
var4 = []
var5 = []
for i in range(0,len(df_norm['geometry.coordinates'],5)):
for j in df_norm['geometry.coordinates']:
flatten_list(df_norm['geometry.coordinates'])
var1.append(flat_list[i])
var2.append(flat_list[i+1])
var3.append(flat_list[i+2])
var4.append(flat_list[i+3])
var5.append(flat_list[i+4])
,
您得到的错误可能是因为您没有分配函数返回的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。