Что здесь происходит?
Поучительно посмотреть на код, испускаемый компилятором:
.version 6.2 .target sm_52 .address_size 64 // .globl _Z4addrPy .visible .entry _Z4addrPy( .param .u64 _Z4addrPy_param_0 ) { .local .align 8 .b8 __local_depot0[40]; .reg .b64 %SP; .reg .b64 %SPL; .reg .b32 %r<2>; .reg .b64 %rd<6>; mov.u64 %SPL, __local_depot0; cvta.local.u64 %SP, %SPL; ld.param.u64 %rd1, [_Z4addrPy_param_0]; cvta.to.global.u64 %rd2, %rd1; mov.u32 %r1, %tid.x; mul.wide.u32 %rd3, %r1, 8; add.s64 %rd4, %rd2, %rd3; add.u64 %rd5, %SP, 0; st.global.u64 [%rd4], %rd5; ret; }
d
хранится в локальная память. У этого есть область уровня потока. Насколько мне известно, документация не определяет, как адресация или адресные пространства работают для локальной памяти.Если бы кто-то предполагал, что каждый поток имеет свое личное адресное пространство для локальной памяти, было бы логично, что первый элемент локальной памяти каждого потока начинался с того же адреса в локальном адресе потока пространство . Возможно, перевод TLB на уникальный адрес в глобальном банке памяти. Опять же, все предположения.
Я думаю, что это небольшое редактирование - то, что тебе нужно.
if name == "<name>":
file = open("<name>.txt", "r")
wishlist = file.readlines()
wishlist=[i.replace('{','') for i in wishlist] # removes all {s from all indices
wishlist=[i.replace('}','') for i in wishlist] # removes all }s from all indices
listtext.setText(wishlist)
Причина в том, что вы использовали метод readlines (), который возвращает список строк в файле. Таким образом, в вашем списке текста может быть какой-то метод, который добавляет {и} к каждому элементу списка
Вы можете использовать функцию String.replace (char, "") в простом цикле, чтобы удалить ненужные символы и не повлиять на оставшуюся часть вашего вывода.
s='''{Television
}{Alarm Clock
}{Lamp
}'''
remove='{}'
for char in remove:
s = s.replace(char, " ")
print(s)
вывод :
blockquote>Television Alarm Clock Lamp