Уведомления

Группа в Telegram: @pythonsu

#1 Март 24, 2016 16:48:26

Qwerty16
Зарегистрирован: 2016-03-20
Сообщения: 38
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

n = 10
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
s_1 = {i for i in range(n)}
s_2 = {i for i in range(n)}
s = 0
i = 0
for b in a:
    if i in s_1:
        j = 0
        for c in b:
            if j in s_2:
                s = s + a[i][j]
            j = j + 1
    i = i + 1
print(s)

Вот условие
Даны описания:
>>> n = 10
>>> a = [,
,
]
>>> s_1 = {i for i in range(n)}
>>> s_2 = {i for i in range(n)}

Реализовать программно вычисление суммы тех элементов матрицы a, номера
строк и столбцов которых принадлежат соответственно непустым множествам s_1
и s_2.

Офлайн

#2 Март 25, 2016 09:15:50

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

from random import randint
n = 10
A = [[1, 1, 1, 1, 1],
     [2, 2, 2, 2, 2],
     [3, 3, 3, 3, 3],
     [4, 4, 4, 4, 4],
     [5, 5, 5, 5, 5]]
rows = (randint(0, len(A) - 1) for _ in range(n))
cols = (randint(0, len(A[0]) - 1) for _ in range(n))
print(sum(A[i][j] for i, j in zip(rows, cols)))



Офлайн

#3 Март 25, 2016 20:37:16

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

import numpy as np
a=np.array([[100*i+j for i in range(5)] for j in range(5)])
>>> a[[1,3,4]][:,[0,1]].sum()
316



Офлайн

#4 Март 27, 2016 11:05:10

Qwerty16
Зарегистрирован: 2016-03-20
Сообщения: 38
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

Спасибо за помощь но коде должно бить описание з условие

n = 10
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
s_1 = {i for i in range(n)}
s_2 = {i for i in range(n)}

Офлайн

#5 Март 27, 2016 17:12:27

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

Qwerty16
описание з условие
С вашими условиями правильный код такой:
print(A.sum())



Офлайн

#6 Март 27, 2016 18:41:06

Qwerty16
Зарегистрирован: 2016-03-20
Сообщения: 38
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

print(A.sum())
Этот метод находит сумму всех элементов матрицы а мне нужно вычисление суммы тех элементов матрицы a, номера
строк и столбцов которых принадлежат соответственно непустым множествам s_1
и s_2.

Офлайн

#7 Март 30, 2016 13:59:18

Qwerty16
Зарегистрирован: 2016-03-20
Сообщения: 38
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

Пожалуста помогите

Офлайн

#8 Март 30, 2016 15:26:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

# -*-coding:utf-8-*-
a = [[1, 1, 1, 1, 1],
     [2, 2, 2, 2, 2],
     [3, 3, 3, 3, 3],
     [4, 4, 4, 4, 4],
     [5, 5, 5, 5, 5]]
cols = {1, 2, 3}
rows = {0, 2, 4}
s = 0
for row_num, row in enumerate(a):
    for col_num, item in enumerate(row):
        if row_num in rows and col_num in cols:
            s += item
            
print(s)



Офлайн

#9 Март 30, 2016 21:35:15

Qwerty16
Зарегистрирован: 2016-03-20
Сообщения: 38
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

Спасибо

Офлайн

#10 Март 30, 2016 22:24:15

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Не могли бы вы подсказать как упростить код

Qwerty16
принадлежат соответственно непустым множествам s_1
и s_2.
Qwerty16
s_1 = {i for i in range(n)}
s_2 = {i for i in range(n)}
Ваши множества это все индексы, поэтому правильно просто просуммировать все элементы.



Отредактировано doza_and (Март 30, 2016 22:24:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version