Britain was in huge debt to the USA as a result of the war, and so did not have the money to maintain its colonies. Stationing troops abroad was particularly expensive
As a result of the war, some colonies eg Australia had turned away from British markets, and were therefore no longer profitable.
The desire to rebuild Britain after damage of the war was seen as more important than maintaining empire
Labour's ambitious social reforms were vastly expensive, and empire took away this money
Economic - positive
However, Britain felt that because of the weakened position of Europe, it had to hang on to it's colonies in order to make financial gain through closer collaboration with the colonies, ie Rubber, cocoa, tin...
During the war as markets in Europe were lost the imperial markets in some cases became more important.
India had been promised independence after the war in order to encourage support for them in the war in terms of supplies. After the war they lacked the power to crush an uprising demanding independence, so India became independent in 1947
After the second world war old imperialist arguments about white dominance seemed hypocritical and wrong - the public feeling was less interested in retaining empire
The new world which emerged after ww2 feautured two superpowers, the US and the USSR. Britain, as an ally of the US was discouraged from its imperial pretensions as these were seen as a target for the USSR and reflected badly on the US eg the suez crisis of 1956-57. As we were economically dependant n the US they had a lot of power to dictate our actions. Some in Britain felt that we were no longer a world power, and therefore our empire was somewhat irrelevant in the post war world. The fact that the colonies were not 'free' did not agree with our stance as an opponent of communism.
However Britain was keen to remain one of the 'big three' and some saw the way to do this as to retain our empire and emphasise our dominance on the world stage - ie for some ww2 brought about a new feeling of imperialism.