Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2010 22:51:34

sanchopanca
От:
Зарегистрирован: 2010-10-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема со списком Python 2.6

Для начала приведу код

import math
dx = 0.1

x = 0
xl = yl = []
while x <= 1:
yl.append(math.sqrt(x))
xl.append(x)
x += dx
print(xl)
результатом чего является
[0.0, 0, 0.31622776601683794, 0.10000000000000001, 0.44721359549995793, 0.20000000000000001, 0.54772255750516619, 0.30000000000000004, 0.63245553203367588, 0.40000000000000002, 0.70710678118654757, 0.5, 0.7745966692414834, 0.59999999999999998, 0.83666002653407556, 0.69999999999999996, 0.89442719099991586, 0.79999999999999993, 0.94868329805051377, 0.89999999999999991, 0.99999999999999989, 0.99999999999999989]
Кто-нибудь знает в чем ошибка?

Python 2.6.6 win32

——————–
Немного подумал… xl и yl ссылаются на одно и то же место?
——————–
Да, так оно и есть. Всем спасибо за внимание =)



Отредактировано (Окт. 21, 2010 22:56:16)

Офлайн

#2 Окт. 21, 2010 23:51:29

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Проблема со списком Python 2.6

Это классическая ошибка.
попробуйте вместо xl = yl =
написать
xl =
yl =



Офлайн

#3 Окт. 22, 2010 11:26:02

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Проблема со списком Python 2.6

Вот именно. Получается что xl и yl это один и тот же список. Кроме варианта Ed'а можно поступить так, тут как больше нравится:
xl, yl = ,

Вариант для извращенцев :-):
xl, yl = map(apply,

  • * 2)

    А это элементарное копирование списков (в данном случае довольно нелепо его использовать, но он работать будет):
    xl =
    yl = xl

    ..bw



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version