for r in unique_rarity: data_rarity = [x[2] for x in data if x[4] == r]优化这段代码
时间: 2023-11-28 12:51:33 浏览: 42
可以使用列表推导式和集合(set)来优化这段代码:
```
data_rarity = [x[2] for x in data if x[4] in set(unique_rarity)]
```
使用 set(unique_rarity) 可以将 unique_rarity 转换为一个集合,这样在判断 x[4] 是否在 unique_rarity 中时,可以使用集合的 O(1) 时间复杂度来判断,提高了代码的运行效率。同时使用列表推导式可以简化代码,使代码更加清晰易读。
相关问题
unique_rarity = list(set(rarity)) data_rarity = [] for r in unique_rarity: data_rarity = [x[2] for x in data if x[4] == r]优化这段代码
可以使用列表推导式和字典来优化这段代码```
data_rarity =r: [x[] for x in data if x[4] == r] for r in set(rarity)}
```
这样就一行代码快速地创建字典,其中键rarity` 列表的唯一元素,对应的值是 `data` 列表中与该元素匹配的所有 `x[2]`。这样做的好处是避免了多次遍历 `data` 列表,提高了代码效率。
data = pd.read_excel('newskin.xlsx',header=None,names=['A','B','C','D','E']) # 将价格数据和稀有度数据分别存储到price和rarity列表中 price = data['E'].tolist() rarity = data['C'].tolist() unique_rarity = list(set(rarity)) data_rarity = [] for r in unique_rarity: data_rarity = [x[2] for x in data if x[4] == r]优化这段代码
可以使用Pandas的groupby方法和apply方法来优化这段代码:
```
import pandas as pd
data = pd.read_excel('newskin.xlsx', header=None, names=['A', 'B', 'C', 'D', 'E'])
unique_rarity = list(set(data['C'].tolist()))
data_rarity = data.groupby('C').apply(lambda x: x['E'].tolist()).to_dict()
```
这样可以将稀有度作为索引,并将每个稀有度对应的价格数据存储为一个列表,存储在字典中。这样可以更快速地获取每个稀有度对应的价格数据。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)