基础测试题(字符串、列表、元组、字典)

1、元素分类

    有如下值集合  [11,22,33,44,55,66,77,88,99,90],将所有大于  66  的值保存至字典的第一个 key 中,将小于  66  的值保存至第二个 key 的值中。

即:  {'k1':  大于 66 的所有值,  'k2':  小于 66 的所有值}

 

代码1:

a = [11,22,33,44,55,66,77,88,99]
b = []
c = []
for i in a:
    if i >66:
        b.append(i)
    else:
        c.append(i)
x = {"k1":c,"k2":b}
print(x)

 

代码2:

l = [11,22,33,44,55,66,77,88,99,90]
result = {}
for item in l:
    if item < 66:
        if "k1" not in result:
              result['k1'] = [item,]    # {'k1': [11,]}
        else:
            result['k1'].append(item)
    elif item > 66:
        if "k2" not in result:
            result['k2'] = [item, ]    # {'k1': [11,]}
        else:
            result['k2'].append(item)
print(result)

 

代码3:

values = [11,22,33,44,55,66,77,88,99,90]
value_dict = {'k1':[],'k2':[]}
for i in values:
    if i > 66:
        value_dict['k1'].append(i)
    elif i < 66:
        value_dict['k2'].append(i)
print(value_dict)

 

2、1 2 3 4 5 6 7 8能组成多少个不同的两位数?

代码:

count = 0
for i in range(1,9):
    for V in range(1,9):
        if i != V:
            print(i,V)
            count += 1
print(count)

#如果数据是列表[1,3,5,9]的形式,那么如下
ls = [1,3,5,9]
count = 0
for i in range(0,len(ls)):
for V in range(0,len(ls)):
if i != V:
count+=1
print(count)

 

3、有两个列表

l1 = [11,22,33]
l2 = [22,33,44]
a. 获取内容相同的元素列表
b. 获取 l1 中有, l2 中没有的元素列表
c. 获取 l2 中有, l1 中没有的元素列表
d. 获取 l1 和 l2 中内容都不同的元素

代码:

for i in l2:
    if i not in l1:
        print(i)
for i in l1:
    if i not in l2:
        print(i)

 

4、99乘法表

代码1:

for i in range(1,10):
    string = ""
    for j in range(1,i+1):
        string +=str(j) + " * "+str(i) + " = " +str(i*j)+"\t"   #\t为横向制表符(相当于4个空格)
    print(string)

代码2:

for i in range(1,10):
    for j in range(1,i+1):
        print(str(j) + " * "+str(i) + " = " +str(i*j)+"\t",end="")     ##end表示不换行,如果去掉这个end将会所有的输出分别占一行
    print("\n",end="")      ##此处也可以用print()替换,因为print自带一个换行。换行+不换行=什么都不输出+自动换行

输出:

 

5、输出两个不同数字的组合,且数字不能重复

li = [1,2,3,4]
l = len(li)
for i in range(0,l-1):
     for v in range(i+1,l):
         print(li[i],li[v])

输出:

 

6、请用代码实现列表li=['alex','eric',123]元素之间用下划线连接起来

如果列表有多个元素不是字符串,用for循环将其修改

代码1:
li=['alex','eric',123]
li[2] = str(li[2])
v = "_".join(li)
print(v)

代码2:

li=['alex','eric',123]
l = []
for i in li:
    i = str(i)
    l.append(i)
v = "_".join(l)
print(v)

输出:

 

 7、公鸡5文钱一只,母鸡3文钱一只,三只小鸡一文钱,总共要买一百只鸡,其中公鸡母鸡小鸡都要有,请问各买多少只才能凑足100文钱?

for x in range(1,100//5):
    for y in range(1,100//3):
        for z in range(1,100):
            if x + y + z == 100 and 5*x + 3*y + z/3 == 100:
                print(x,y,z)

输出:

 

8、使用for,len,range输出元组的索引,使用enumerate输出元组和序号(序号从10开始),第一个参数为可迭代对象,第二个参数为索引的起始位置

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

tu = ('alex','eric','rain')
for i in range(len(tu)):
    print(i)

for i,l in enumerate(tu,10):
    print(i,l)
a
= list(enumerate(tu)) b = list(enumerate(tu,10)) print(a) print(b)

输出:

 

 

9、有如列表num=[2,7,11,15,8,7],请找任意两个元素相加能够等于9的元素集合,索引

代码1:输出元素

num=[2,7,11,15,8,7]
for i in num:
    for j in num:
        if i + j == 9:
            print(i,j)

输出:
2 7
2 7
7 2
7 2

 

代码2:输出元素

num=[2,7,11,15,8,7]
a = []
for i in num:
    for j in num:
        if i + j == 9:
            a.append((i,j))
print(a)

输出:
[(2, 7), (2, 7), (7, 2), (7, 2)]

 

 代码3:输出索引

 

num=[2,7,11,15,8,7]
a = []
for i in range(len(num)):
    for j in range(len(num)):
        if num[i] + num[j] == 9:
            a.append((i,j))
print(a)

 

输出:

 

 10、分页显示内容,每页显示10条数据,提示用户需要查看的页码:当输入指定的页码则显示指定数据。

user_list = []
for i in range(1,302):
    temp = {'name':'alex' + str(i),'email':'alex@live.com' + str(i),'password':'pwd' + str(i)}
    user_list.append(temp)

while True:
    s = input("请输入页数:")
    s = int(s)
    start = (s-1)*10
    end = s*10
    result = user_list[start:end]
    for item in result:
        print(item,type(item))

输出:

 

转载于:https://www.cnblogs.com/foever-lee/p/9982648.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值