获取python的list中含有重复值的index方法

yipeiwu_com7年前Python基础

关于怎么获得,我想其实网上有很多答案。

list.index( )获得值的索引值,但是如果list中含有的值一样,例如含有两个11,22,这样每次获得的都是第一个值的位置。

那么怎么去解决这个问题呢?

下面的程序对这个问题做了一定的解答

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : SundayCoder-俊勇
# @File : listlearn.py
# 怎么获得list中的相同值的索引值
# 请看下列程序
s = [11, 22, 33, 44, 22, 11]
print s.index(11)
# 此时输出0
print s.index(22)
# 此时输出1
# 那怎么才能得到11,22相同的值的索引值呢?
# 有人说用dict(字典),这个方法也可以
# 有人说用defaultdict
# 程序如下:
from collections import defaultdict
d = defaultdict(list)
for k,va in [(v,i) for i,v in enumerate(s)]:
 d[k].append(va)
print d
# 输出的结果如下:defaultdict(<type 'list'>, {33: [2], 11: [0, 5], 44: [3], 22: [1, 4]})
# 但是有没有一个更加简单的方法呢?
# 有的,那就是”偷梁换柱“,用一个s1来复制s。
s1 = s
i = s1.index(11)
s1[i]=55
# 替换s1的11为55(不一定是55只要是列表中没有的数值就可以)
# 再打印s1
print s1
# 输出[55, 22, 33, 44, 22, 11]
# 下一步可以得到11的位置了
print s1.index(11)
# 输出为:5

以上这篇获取python的list中含有重复值的index方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pycharm创建scrapy项目教程及遇到的坑解析

pycharm创建scrapy项目教程及遇到的坑解析

前言 最近学习scrapy爬虫框架,在使用pycharm安装scrapy类库及创建scrapy项目时花费了好长的时间,遇到各种坑,根据网上的各种教程,花费了一晚上的时间,终于成功,其中也...

Python+OpenCV实现车牌字符分割和识别

Python+OpenCV实现车牌字符分割和识别

最近做一个车牌识别项目,入门级别的,十分简单。 车牌识别总体分成两个大的步骤: 一、车牌定位:从照片中圈出车牌 二、车牌字符识别 这里只说第二个步骤,字符识别包括两个步骤: 1、图像处理...

python+opencv实现摄像头调用的方法

python+opencv实现摄像头调用的方法

最近入了一块树莓派,想让其实现摄像头的调用,因此写下此博客备忘 一、树莓派网络的配置 首先,对树莓派进行网络配置,否则就无法进行软件的安装 我们知道,ifconfig命令可以修改ip地址...

对Pandas DataFrame缺失值的查找与填充示例讲解

查看DataFrame中每一列是否存在空值: temp = data.isnull().any() #列中是否存在空值 print(type(temp)) print(temp)...

Python脚本实现Web漏洞扫描工具

这是去年毕设做的一个Web漏洞扫描小工具,主要针对简单的SQL注入漏洞、SQL盲注和XSS漏洞,代码是看过github外国大神(听说是SMAP的编写者之一)的两个小工具源码,根据里面的思...