python访问列表元素,栈和队列的实现

python[:]访问元素

包头不包尾

a = [1, 2, 3, 4, 5]
print(a[-1])  # 倒数第一个元素
print(a[-2])  # 倒数第二个元素
print(a[-2:-1])
print(a[-5:-2])  # 包头不包尾
print(a[2::-1])  # 从0到2元素逆序输出
print(a[:-1])    # 包头不包尾,处了倒数第一个元素
print(a[::-1])   # 逆序输出

结果:
在这里插入图片描述

item函数

items() 方法把字典中每对 key 和 value 组成一个元组,并把这些元组放在列表中返回。

print(len({"11": "racehorse", "22": "ditto"}.items()))
d = {'one': 1, 'two': 2, 'three': 3}
print(d.items())

在这里插入图片描述

实现矩阵乘法

def matrixMul(A, B):
    if len(A[0]) == len(B):
        res = [[0] * len(B[0]) for _ in range(len(A))]
        for i in range(len(A)):
            for j in range(len(B[0])):
                for k in range(len(B)):
                    res[i][j] += A[i][k] * B[k][j]
        return res
    return '输入矩阵有误!'


n, m, k = map(int, input().split())
array = []
array1 = []
array_result = []
for i in range(n):
    temp = []
    temp = list(map(int, input().split()))
    array.append(temp)

for i in range(m):
    temp = []
    temp = list(map(int, input().split()))
    array1.append(temp)

array_result = matrixMul(array, array1)
for i in range(len(array_result)):
    for j in range(len(array_result[0])):
        print(array_result[i][j], end=" ")
    print()

结果:
在这里插入图片描述

实现栈

class Stack:
    def __init__(self):
        self.sizes = 10000
        self.stack = []

    def push(self, item):
        if len(self.stack) <= self.sizes:
            self.stack.append(item)
        else:
            raise Exception("stack is full!")

    def pop(self):
        if self.is_empty():
            raise Exception("stack is empty!")
        else:
            return self.stack.pop()

    def peek(self):
        if self.is_empty():
            raise Exception("stack is empty!")
        else:
            return self.stack[-1]

    def is_empty(self):
        if len(self.stack) == 0:
            return True
        else:
            return False

    def size(self):
        return len(self.stack)


a = Stack()
a.push(2)
a.push(3)
a.push(4)
print(a.peek())
print(a.pop())
print(a.is_empty())
print(a.size())

结果:
在这里插入图片描述

实现队列

class Queue:
    def __init__(self):
        self.sizes = 10000
        self.queue = []

    def enqueue(self, item):
        if len(self.queue) <= self.sizes:
            self.queue.append(item)
        else:
            raise Exception("stack is full!")

    def dequeue(self):
        if self.is_empty():
            raise Exception("stack is empty!")
        else:
            return self.queue.pop(0)

    def is_empty(self):
        if len(self.queue) == 0:
            return True
        else:
            return False

    def size(self):
        return len(self.queue)


a = Queue()
a.enqueue(2)
a.enqueue(3)
a.enqueue(4)
print(a.dequeue())
print(a.dequeue())
print(a.is_empty())
print(a.size())

结果:
在这里插入图片描述

质数分解

from functools import reduce


def test(num, l=[]):
    a = True
    for i in range(2, num):
        if num % i == 0:
            a = False
            n = num // i
            l.append(i)
            break

    if a:
        l.append(num)
        return str(reduce(lambda x, y: x * y, l)) + ' = ' + ' * '.join([str(i) for i in l])
    else:
        return test(n, l)
m = int(input())
a = test(m)
print(a)

结果:
在这里插入图片描述

给定一个十进制正整数,根据数制转换的原理将其转换成对应的k进制(2<=k<=9)

def transform(num, k):
    list1 = []
    while num != 0:
        list1.append(num % k)
        num //= k
    return list1


n = int(input())
k = int(input())
array = transform(n, k)
array = array[::-1]
for i in array:
    print(i, end="")

结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值