面试题0005

1.给定一个 int list a,满足 a[i+1] >=a[i],给定int key,找出list a中第一个大于等于key的元素的index,无满足要求的元素则返回-1。

函数定义:
def findindex(int_list,int_key)

    #定义函数
    def findIndex(int_list, int_key):
        '''
        给定一个int list a,满足a[i+1]>=a[i],给定int key,找出list a中第一个大于等于key的元素的index,无满足要求的元素则返回-1.
        :param int_list:
        :param int_key:
        :return:
        '''
        for i in int_list:
            if i >= int_key:
                return int_list.index(i)
               
        if int_key not in int_list:
            return -1

    if __name__ == "__main__":
        #定义一个 int list,并初始化
        list1 = [1,1,2,2,3,3,4,4,5,5,6,6]
        #调用函数,并传入参数,注:传入的int_key值是一个不存在int_list的值.返回-1;
        index1 = findIndex(list1, 8)
        print (index1)

        # 调用函数,并传入参数,注:传入的int_key的值在int_list的值.返回其首次出现时对应的下标;
        index2 = findIndex(list1, 3)
        print(index2)

2.请用random打乱一个排好序的list对象a_list.

    #random模块中的shuffle(洗牌函数)
    import random
    alist = [1, 2, 3, 4]
    random.shuffle(alist)   
    print alist

3.字典dict_ori = {'A':1, 'B':2, 'C':3},请用代码完成key和value的交换

    #方法一: 
    #使用dict.items()方式
    dict_ori = {'A':1, 'B':2, 'C':3}
    dict_new = {value:key for key,value in dict_ori.items()}
    print(dict_new)

    方法二: 
    使用zip方法
    dict_ori = {'A':1, 'B':2, 'C':3}
    dict_new2= dict(zip(dict_ori.values(), dict_ori.keys()))
    print(dict_new2)

4.string = "{1},{0}";string = string.format('hello','python'),请问将string打印结果为:

A:hello,python          
B:{1},{0}
C:python,hello
D: hello,hello
答案:C

5.定义A = [1,2,3,4] 使用列表生成式[i*i for i in A]生成列表为:

A: [1,2,3,4]
B: [1,4,9,16]
C: [1,4,6,8]
D: [1,4,9,12]
答案:B

6.如何把列表a = ['a','b']里的各项,转为字符串并用逗号‘,’连接。

target = ','.join(a)
# 解析:列表的基本操作

7.请问以下代码输出什么?

ss = 'sdfkjal;fj;lasd;asdlkf;las'
s1 = []
[s1.append(s) for s in ss if s not in s1]
print(set(s1) == set(ss))
True

8.var1等于几?

   var1 = "8"
   var2 = "3"
   var1 += var2
var1="83"

9.var = [1,{2,3},(88,99,[4,5,6,[7,8,9]])]定位四级容器中的6

var[2][2][2]

10.写打印结果

res = True and False
print(res)

False

res = True or False
print(res)

True

11.求吉利数字:100~999 : 111 222 333 444... 666..888 123 321 456 ,654 789 987...

    i = 100
    while i<=999:
        # 个位数
        gewei = i % 10 
        # 十位数
        shiwei = i // 10 % 10
        # 百位数
        baiwei = i // 100
        
        if gewei == shiwei  and  shiwei == baiwei :
            print(i)
        
        if shiwei == gewei -1 and  shiwei == baiwei + 1:
            print(i)
            
        if shiwei == gewei +1 and shiwei == baiwei -1:
            print(i)
        
        i+=1

12.分别解释一下下列函数用法

    range(1,5):代表从1到5(不包含5)
    range(1,5,2):代表从1到5,间隔2(不包含5)
    range(5):代表从0到5(不包含5)

13.表达式[1]*2的值为()

A:[2]   B:[1]   C:[1,1] D:[1,2]
答案:c

14.说说dict的items()方法与iteritems()方法的不同。

    字典的items方法作用:是可以将字典中的所有项,以列表方式返回。因为字典是无序的,所以用items方法返回字典的所有项,也是没有顺序的。
    字典的iteritems方法作用:与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。

你可能感兴趣的:(面试题0005)