Уже есть много ответов, которые расскажут вам, как сделать правильную копию, но никто из них не говорит, почему ваша оригинальная «копия» не удалась.
Python не сохраняет значения в переменных; он связывает имена с объектами. Ваше исходное назначение взяло объект, на который ссылается my_list
, и связал его с new_list
. Независимо от того, какое имя вы используете, остается только один список, поэтому изменения, сделанные при обращении к нему как my_list
, будут сохраняться при обращении к нему как new_list
. Каждый из других ответов на этот вопрос дает вам различные способы создания нового объекта для привязки к new_list
.
Каждый элемент списка действует как имя, поскольку каждый элемент связывается не исключительно с объектом. Неглубокая копия создает новый список, элементы которого привязываются к тем же объектам, что и раньше.
new_list = list(my_list) # or my_list[:], but I prefer this syntax
# is simply a shorter way of:
new_list = [element for element in my_list]
Чтобы сделать копию списка еще на один шаг, скопируйте каждый объект, на который ссылается ваш список, и привяжите эти копии элементов в новый список.
import copy
# each element must have __copy__ defined for this...
new_list = [copy.copy(element) for element in my_list]
Это еще не глубокая копия, потому что каждый элемент списка может ссылаться на другие объекты, точно так же, как список привязан к его элементам. Чтобы рекурсивно скопировать каждый элемент в списке, а затем каждый другой объект, на который ссылаются каждый элемент, и т. Д .: выполните глубокую копию.
import copy
# each element must have __deepcopy__ defined for this...
new_list = copy.deepcopy(my_list)
Для получения дополнительной информации о копировании в окне [gg] см. документацию .
До тех пор, пока свойство CSS4 border-corner-shape
не находится в опасности! и он не реализован . Это можно сделать с помощью преобразований CSS3 (чтобы сохранить свойство border
использование):
HTML:
<div class="box">
Text Content
</div>
CSS:
.box {
width: 200px;
height: 35px;
line-height: 35px;
padding: 0 5px;
background-color: #ccc;
padding-right: 20px;
border: solid 1px black;
border-right: 0;
position: relative;
}
.box:after {
content: "";
display: block;
background-color: #ccc;
border: solid 1px black;
border-left: 0;
width: 35px;
height: 35px;
position: absolute;
z-index: -1;
top: -1px; /* pull it up because of 1px border */
right: -17.5px; /* 35px / 2 */
transform: skew(-45deg);
-o-transform: skew(-45deg);
-moz-transform: skew(-45deg);
-webkit-transform: skew(-45deg);
}
Здесь JSBin Demo .
ПРИМЕЧАНИЕ. В приведенном выше примере div
есть другой class
атрибут box2
, который реализован без использования объявлений CSS3, которые вы можете использовать для его использования;)
Скорее всего, это можно сделать, используя невидимый приграничный трюк. В сети есть некоторые «генераторы треугольников», например этот один
outline: solid 1px #000;
для создания контура изображения. Даже вокруг треугольника.
– Bart
25 May 2013 в 11:33
CSS и HTML:
ul {
position: relative;
overflow: hidden;
font: 14px Arial;
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
ul:before {
content: "";
position: absolute;
z-index: -1;
left: 124px;
margin-left: -120px;
width: 0;
border-left: 0 solid transparent;
border-right: 230px solid transparent;
border-top: 179px solid #CCCCCC;
}
li {
height: 3.8em;
line-height: 3em;
position: relative;
margin-left: -562px;
}
li:after,
li:before {
content: "";
display: block;
height: 0.4em;
background: #fff;
width: 100%;
}
<ul>
<li>Text Content</li>
</ul>
Чтобы получить желаемый результат, вы должны использовать свойство border-width
.
Надеюсь, это поможет.
Если я опишу такой документ:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Тег DIV</title>
<style type="text/css">
.block1 {
width: 300px;
height: 0px;
border-style: solid;
border-width: 200px 200px 0 0;
border-color: #f200ff transparent transparent transparent;
}
</style>
</head>
<body>
<div class="block1">Text Content</div>
</body>
</html>
Я получаю почти то, что вам нужно, но я не понимаю, почему текст отсутствует на рисунке?
border-corner-shape
, предложенный как свойствоcorner-shape
в CSS Фоны и границы модуля Уровень 4 . – Hashem Qolami 6 October 2014 в 10:16