码迷,mamicode.com
首页 > 编程语言 > 详细

Python 学习随笔1

时间:2016-10-18 02:27:26      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

在一个列表中,找出重复数组的位置。

比如在列表name = [1, 5, 8, 22, 56, 2, 8, 45, 7, 2, 35, 2, 486, 2, 152, 111, 265, 2, 2]中,找出2的位置。

方法1:

流程为:

找到第一个2的位置,然后在2之后的一个数后面切片,再找2,再再后一个数切片,循环下去。

第一个2的位置就是name中第一个2的位置。

第二个2的位置为第一个2的位置加上第二个切片中2的位置加1(位置从0开始)

第三个以此类推。

代码:

#_*_coding:utf-8_*_

name = [1, 5, 8, 22, 56, 2, 8, 45, 7, 2, 35, 2, 486, 2, 152, 111, 265, 2, 2]

new_pos = 0 #初始位置定位0
for i in range(name.count(2)): # for循环次数为2出现的次数
    new_list = name[new_pos:] #切片,从刚开始的0处切片,实现new_list = name
    next_pos = new_list.index(2) #第一个2的位置找出
    print next_pos + new_pos #输出2的位置,由新位置加上下一个位置
    new_pos += next_pos + 1 #新的位置为自身加上下一个位置再加一,因为切片要从2之后的一个数开始,否则下一个2位置永久为0

 输出结果:

技术分享

 

方法2(超暴力):

流程为:

从第一个2开始,每次都把这个位置的2删掉,以后2的位置加上删掉2的次数即可。

代码如下:

#_*_coding:utf-8_*_

name = [1, 5, 8, 22, 56, 2, 8, 45, 7, 2, 35, 2, 486, 2, 152, 111, 265, 2, 2]

for i in range(name.count(2)): # 循环次数为列表中2出现的次数
    print name.index(2) + i # 输出2的位置加上i的数,i为0、1、2、3……恰好前面删掉2的次数
    del name[name.index(2)] # 删掉当前输出的2,形成新的列表进入下次循环

 输出结果:

技术分享

 

Python 学习随笔1

标签:

原文地址:http://www.cnblogs.com/wuqiangroy/p/5971677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!