2018-08-27-day06作业

1.已知一个列表,求列表中心元素

lst = ['a','b','c','d','e']
if len(lst)%2!=0:
  print(lst[len(lst)//2])
else:
  print(lst[len(lst)//2-1])
'''
结果:c
'''

2.已知一个列表,求所有元素和

lst = [1,2,3,4,5,6,7,8,9]
sum = 0
for num in lst[:]:
    sum += num
print(sum)
'''
结果:45
'''

3.已知一个列表,输出所有下标是奇数的元素

lst = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
for word in lst[1::2]:
    print(word,end=' ')
print()
'''
结果:world c++ lisp php go 
'''

4.已知一个列表,输出所有元素中,值为奇数的元素。

lst = range(101)
for num in lst[1::2]:
    print(num,end=' ')
print()
'''
结果:1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 

'''

5.已知一个列表,将所有的元素乘以2。

lst = range(21)
lst2 = []
for num in lst[:]:
    lst2.append(num*2)
print(lst2)
'''
结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40]

'''

6.已知一个列表,将所有元素加到第一个元素中。

lst = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
s = ''
for st in lst[:]:
    s += st
lst.clear()
lst.append(s)
print(lst)
'''
结果:['helloworldjavac++pythonlispcphpjavascriptgoswift']
'''

7.已知一个列表A,将奇数位置元素存到B列表中,偶数元素存到C列表中。

a = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
b = []  #存储偶数下标列表
c = []  #存储奇数下标列表
for item in a[1::2]:
    b.append(item)
for item in a[0::2]:
    c.append(item)
print(b)
print(c)
'''
结果:
['world', 'c++', 'lisp', 'php', 'go']
['hello', 'java', 'python', 'c', 'javascript', 'swift']

'''

8.把A列表的前5个元素复制到B列表中。

a = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
b = a[0:5]
print(b)
'''
结果:
['hello', 'world', 'java', 'c++', 'python']
'''

9.有一个长度是10的列表,按递增排列,用户输入一个数,插入适当位置。

lst = [22,33,35,37,40,78,87,99,101,103]
num = int(input("please input a number:"))
i = 0
if num<lst[0]:
    lst.insert(0, num)
elif num>=lst[0]:
    while i < len(lst) - 1:
        if num >= lst[i] and num <= lst[i + 1]:
            lst.insert(i + 1, num)
            break
        i += 1
if num >= lst[len(lst)-1]:
    lst.append(num)
print(lst)
'''
结果:
please input a number:23
[22, 23, 33, 35, 37, 40, 78, 87, 99, 101, 103]
'''

10.自己实现列表的count方法的功能。

def my_count(lst,obj):
    '''

    :param lst:传入的列表
    :param obj:要统计的元素
    :return:元素在列表中的次数
    '''
    count = 0
    for i in lst[:]:
        if i == obj:
            count += 1
    return count
lst = [1,2,3,4,2,2,4,5]
print('出现次数:%d'%my_count(lst,2))
'''
结果:出现次数:3
'''

11.自己实现列表的extend方法的功能。

def my_extend(lst1,lst2):
    '''

    :param lst1: 主列表
    :param lst2: 要进行添加的序列
    :return: 扩展的列表
    '''
    if type(lst2) == str or type(list)==list or\
            type(lst1)==set or type(lst1)==tuple:
        for s in lst2:
            lst1.append(s)
    elif type(lst2) == dict:
        for key in lst2.keys():
            lst1.append(key)
    return lst1
print(my_extend([1,2],{'1':2,'a':1}))
'''
结果:[1, 2, '1', 'a']
'''

12.自己实现列表的index方法

def my_index(lst,obj):
    '''
    :param lst:传入列表
    :param obj:要寻找的第一次出现下标的元素
    :return:下标的位置,返回-1表示此列表无此元素
    '''
    i = 0 #用来记录下标的变化
    while i<len(lst):
        if obj == lst[i]:
            return i
        i += 1
    return -1
lst=[1,2,3,4,3,2,2]
my_i=my_index(lst,2)
if i>=0:
    print('索引:%d'%my_i)
else:
    print('此列表中没有这个元素')
'''
结果:索引:1
'''

13.元组总结
什么是元组?不可变的列表
元组的声明方式:
变量名 = (数据1,数据2,...数据n)

1).多个值之间用逗号隔开,对应的数据也是元组
a = 1,2,4,5 相当于a=(1,2,4,5)

a = 1,2,4,5 
print(type(a))

x,y = y,x 相当于 x,y=(y,x)

2).遍历元组
遍历元组和遍历列表一样,可以使用for来进行遍历


a = 1,2,4,5 
for i in a:
  print(i)

同样也可以通过下标进行获取,元组也可以进行切片

a=(1,2,3,4,5)
a[0]
a[:2]
'''
结果:
1
(1,2)
'''

3).修改元组变量
虽然不能修改元组的值,但是可以通过重新赋值来为修改元组的变量

a =(1,2)
a=(3,4)
print(a)

4).元组的运算
a).+运算:元组进行加运算的时候会生成一个新的元组,把相加的元组的值复制到一个新的地址,并把该地址返回
'''
a=(1,2,3,4,5)
b=(1,2)
c=a+b
id(a) #10057312
id(b) #10176632
id(c) #9991480
'''
b).*操作:元组进行乘运算的时候会生成一个新的元组(重复n次),在新的地址创建元组并存值,并把该地址返回

a=(1,2)
a*3
#(1, 2, 1, 2, 1, 2)

c).in/not in:判断一个元素是否在/不在元组中

a=(1,2)
print(1 in a)   #True

d).len(列表):获取元组中的长度,指的就是元组中元素的个数

a=(1,2)
len(序列)
len(a) 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容