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]:
    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=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) 

你可能感兴趣的:(2018-08-27-day06作业)