python - python从列表中直接删除重复出现的值
问题描述
我用javascript编写了一个我不知道如何用python编写的代码。它的使用相当简单。有 2 个变量:买入和卖出。例如,有买、买、卖、买、卖、卖 javascript 给了我一个新的列表,包括买、卖、买、卖
´´const fs = require('fs');
class Trade {
price;
side;
}
const array =
console.log('AllTrades:');
console.log(array);
let trades = [];
for(let i = array.length - 1; i >= 0; i--) {
let trade = array[i];
let nextTrade = array[i - 1];
if(nextTrade) {
if(trade[0] == "BUY" && nextTrade[0] == "SELL") {
trades[i] = trade;
}
if(trade[0] == "SELL" && nextTrade[0] == "BUY") {
trades[i] = trade;
}
} else if(trade[0] == "BUY") {
trades[i] = trade;
}
}
trades = trades.filter(function (i) { return i != undefined;});
console.log('D Trades:');
for(let i = 0; i < trades.length; i++) {
console.log(trades[i]);
}
fs.writeFile('./data/trades.json', JSON.stringify(trades), (err, data) => {
if (err) return console.log(err);
console.log('Trades > trades.txt');
}); ´´
解决方案
我假设你的问题是你不熟悉 python,这是我的解决方案:
list= ["Sell","Sell","Buy","Sell","Sell","Buy","Buy","Buy","Sell","Sell","Buy","Buy","Sell","Sell"];
index=[];
for k in range(len(list)-1):
if list[k]==list[k+1]:
index.append(k);
print (index)
for k in range(len(index)):
list.pop(index[k]);
if k<len(index)-1:
index[k+1]=index[k+1]-(k+1);
print (index);
print(list);
我选择使用 2 循环,因为如果您在第一个循环中弹出列表的元素,您将遇到范围错误,因为列表现在有 len(list)-1 字符串。我只是使用 append 函数在列表末尾添加元素,然后 pop 通过给出索引来擦除元素
第一个循环创建一个包含所有重复字符串索引的列表,第二个循环删除它们
推荐阅读
- ms-access - 子报表的第 2 页上没有条件格式
- python - 为什么 strftime 将日期时间转换为对象格式?
- mysql - 在 Eloquent 中组合查询结果,由其中一列键控
- authentication - 有没有办法在呈现特定视图时隐藏容器项?
- java - 使用spring boot从不存在的地址发送邮件失败:需要密码?
- python - 估计点列表中的缺失点
- python - 如何对熊猫数据框的所有计数求和
- excel - VBA 无论如何要在 TextBox 中的 _Enter 之前执行 _MouseDown?
- c++ - Cuda C++:设备上的 Malloc 类并用来自主机的数据填充它
- javascript - 如何在 Next Js (React) 中实现 adobe 分析?